đ GĂ©nĂ©ration Automatique de Rapport de Suivi #126
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: đ GĂ©nĂ©ration Automatique de Rapport de Suivi | |
| on: | |
| # Déclenchement manuel | |
| workflow_dispatch: | |
| inputs: | |
| days: | |
| description: 'Nombre de jours Ă analyser' | |
| required: false | |
| default: '7' | |
| type: string | |
| # Déclenchement automatique chaque dimanche à 20h | |
| schedule: | |
| - cron: '0 20 * * 0' # Dimanche 20h UTC | |
| # Déclenchement sur push vers main ou sprint branches | |
| push: | |
| branches: [ main, sprint_* ] | |
| paths-ignore: | |
| - 'suivi_realisation*.md' | |
| - '.github/**' | |
| jobs: | |
| generate-report: | |
| name: đ GĂ©nĂ©ration du rapport | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| steps: | |
| - name: đ„ Checkout du code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 # RécupÚre tout l'historique Git | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: đ Configuration Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.11' | |
| - name: đ GĂ©nĂ©ration du rapport | |
| id: generate | |
| run: | | |
| # Définir le nombre de jours | |
| DAYS="${{ github.event.inputs.days || '7' }}" | |
| echo "Analyse des $DAYS derniers jours" | |
| # Exécuter le script | |
| python scripts/generate_progress_report.py \ | |
| --days "$DAYS" \ | |
| --output "suivi_realisation_auto.md" \ | |
| --repo "." | |
| # Vérifier si le fichier a été créé/modifié | |
| if [ -f "suivi_realisation_auto.md" ]; then | |
| echo "report_generated=true" >> $GITHUB_OUTPUT | |
| echo "â Rapport gĂ©nĂ©rĂ© avec succĂšs" | |
| else | |
| echo "report_generated=false" >> $GITHUB_OUTPUT | |
| echo "â Ăchec de la gĂ©nĂ©ration du rapport" | |
| fi | |
| - name: đ Configuration Git | |
| if: steps.generate.outputs.report_generated == 'true' | |
| run: | | |
| git config --local user.email "action@github.com" | |
| git config --local user.name "GitHub Action - Progress Report" | |
| - name: đŸ Commit et push du rapport | |
| if: steps.generate.outputs.report_generated == 'true' | |
| run: | | |
| # Ajouter le fichier | |
| git add suivi_realisation_auto.md | |
| # Vérifier s'il y a des changements | |
| if git diff --staged --quiet; then | |
| echo "âčïž Aucune modification dĂ©tectĂ©e dans le rapport" | |
| else | |
| # Créer le commit | |
| COMMIT_MSG="đ Mise Ă jour automatique du rapport de suivi ($(date '+%d/%m/%Y'))" | |
| git commit -m "$COMMIT_MSG" | |
| # Pousser les changements | |
| git push | |
| echo "â Rapport mis Ă jour et poussĂ© vers le dĂ©pĂŽt" | |
| fi | |
| - name: đ RĂ©sumĂ© des mĂ©triques | |
| if: steps.generate.outputs.report_generated == 'true' | |
| run: | | |
| echo "## đ RĂ©sumĂ© du Rapport GĂ©nĂ©rĂ©" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "**đ Date de gĂ©nĂ©ration :** $(date '+%d/%m/%Y Ă %H:%M')" >> $GITHUB_STEP_SUMMARY | |
| echo "**đ PĂ©riode analysĂ©e :** ${{ github.event.inputs.days || '7' }} derniers jours" >> $GITHUB_STEP_SUMMARY | |
| echo "**đż Branche :** ${{ github.ref_name }}" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| # Extraire quelques métriques du rapport généré | |
| if [ -f "suivi_realisation_auto.md" ]; then | |
| COMMITS=$(grep -o "Nombre de commits.*[0-9]" suivi_realisation_auto.md | head -1 || echo "Non disponible") | |
| LIGNES=$(grep -o "[0-9]* lignes ajoutées" suivi_realisation_auto.md | head -1 || echo "Non disponible") | |
| echo "**đ MĂ©triques clĂ©s :**" >> $GITHUB_STEP_SUMMARY | |
| echo "- $COMMITS" >> $GITHUB_STEP_SUMMARY | |
| echo "- $LIGNES" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "đ Fichier gĂ©nĂ©rĂ© : \`suivi_realisation_auto.md\`" >> $GITHUB_STEP_SUMMARY | |
| fi | |
| notify-completion: | |
| name: đ Notification de fin | |
| needs: generate-report | |
| runs-on: ubuntu-latest | |
| if: always() | |
| steps: | |
| - name: đą Statut du workflow | |
| run: | | |
| if [ "${{ needs.generate-report.result }}" == "success" ]; then | |
| echo "â Workflow terminĂ© avec succĂšs" | |
| echo "Le rapport de suivi a été généré et mis à jour automatiquement." | |
| else | |
| echo "â Ăchec du workflow" | |
| echo "La génération du rapport de suivi a échoué. Vérifiez les logs." | |
| exit 1 | |
| fi |