Surveillez efficacement vos workflows CI/CD sur GitHub
GitHub Actions est devenu la solution CI/CD de référence pour des millions de développeurs. Intégrée nativement à GitHub, elle permet d'automatiser les builds, tests, déploiements et bien plus encore. Cependant, la surveillance de ces workflows automatisés présente des défis uniques que les notifications GitHub natives ne couvrent pas entièrement.
Un problème majeur concerne les workflows planifiés (schedule) : GitHub désactive automatiquement les schedules sur les repositories inactifs depuis plus de 60 jours. Vos backups quotidiens, synchronisations, ou tâches de maintenance peuvent s'arrêter silencieusement sans aucune notification. Les échecs partiels dans les matrices de jobs sont aussi difficiles à suivre.
MoniTao complète GitHub Actions en ajoutant une couche de monitoring heartbeat externe. En intégrant un simple step curl dans vos workflows, vous êtes alerté instantanément si un workflow planifié ne s'exécute pas ou échoue, indépendamment des notifications GitHub.
GitHub Actions offre de nombreux types de déclencheurs. Le monitoring heartbeat est particulièrement utile pour les workflows planifiés.
Les workflows GitHub Actions présentent des défis de surveillance uniques.
Plusieurs approches permettent d'intégrer le monitoring MoniTao dans vos workflows GitHub Actions.
Voici un exemple complet de workflow GitHub Actions avec monitoring heartbeat intégré :
name: Daily Backup
on:
schedule:
- cron: "0 2 * * *" # 2h00 UTC chaque jour
workflow_dispatch: # Déclenchement manuel possible
jobs:
backup:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run backup script
run: ./scripts/backup.sh
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
- name: Notify MoniTao success
if: success()
run: curl -fsS "${{ secrets.MONITAO_URL }}"
- name: Notify MoniTao failure
if: failure()
run: curl -fsS "${{ secrets.MONITAO_URL }}/fail?msg=Backup+failed"
Le secret MONITAO_URL contient votre URL de ping. Le step "success" est exécuté uniquement si le backup réussit. Le step "failure" notifie explicitement les échecs avec un message.
Configurez vos alertes MoniTao pour couvrir les différents scénarios d'échec GitHub Actions.
GitHub désactive automatiquement les schedules sur les repositories inactifs depuis plus de 60 jours. Pour réactiver, faites un commit (même vide) ou déclenchez manuellement le workflow via workflow_dispatch.
Allez dans Settings > Secrets and variables > Actions > New repository secret. Nommez-le MONITAO_URL et utilisez ${{ secrets.MONITAO_URL }} dans votre workflow.
Créez un job final avec needs: [job1, job2, job3]. Ce job ne s'exécutera que si tous les jobs listés réussissent. Ajoutez le ping heartbeat dans ce job final.
Le monitoring heartbeat est conçu pour les workflows à fréquence connue. Pour les PR, utilisez les notifications GitHub natives ou les intégrations Slack/email de GitHub.
Sur GitHub, allez dans l'onglet Actions, sélectionnez le workflow run en échec, et consultez les logs de chaque step. Le step en rouge montre l'erreur.
Oui, tant que le runner a accès à Internet pour appeler l'URL MoniTao. Si votre runner est isolé, configurez un proxy ou une sortie réseau vers api.monitao.com.
GitHub Actions est un outil puissant pour l'automatisation, mais ses workflows planifiés nécessitent une surveillance externe. La désactivation automatique des schedules sur les repos inactifs peut avoir des conséquences critiques si vos backups ou syncs s'arrêtent silencieusement.
En combinant GitHub Actions avec le monitoring heartbeat de MoniTao, vous obtenez une visibilité complète sur vos workflows automatisés. Commencez par vos workflows schedule critiques et maintenez votre repository actif pour éviter la désactivation.
Commencez gratuitement, sans carte bancaire.