Guide · CI/CD
Surveiller GitHub Actions
Un workflow planifié qui cesse de se déclencher ressemble à un mardi tranquille : GitHub Actions ne renvoie aucune erreur, aucune notification, rien dans l'onglet Actions qui mérite d'être remarqué. Un check-in depuis le workflow transforme ce silence en alerte.
1. Créez un check
Dans Mortemain, créez un check correspondant au planning cron de votre workflow, avec une fenêtre de tolérance qui couvre la file d'attente des runners GitHub (les workflows planifiés peuvent démarrer plusieurs minutes en retard quand la plateforme est chargée, et GitHub désactive complètement le planning sur les dépôts sans activité depuis 60 jours). Copiez l'URL de ping du check.
2. Faites le check-in en cas de succès
Ajoutez une dernière étape qui ne s'exécute que si toutes les étapes précédentes ont réussi, et qui fait le check-in vers l'URL de ping :
name: Synchro nocturne on: schedule: - cron: '0 3 * * *' workflow_dispatch: jobs: sync: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Exécuter la synchro run: ./scripts/sync.sh - name: Ping Mortemain (succès) if: success() run: curl -fsS -m 10 https://ping.mortemain.com/votre-uuid-de-check
Les fichiers de workflow des dépôts publics sont visibles par tout le monde. Si cela pose problème, stockez l'URL comme secret du dépôt plutôt que de la coder en dur, puis référencez ${{ secrets.MORTEMAIN_PING_URL }} dans la ligne run:.
3. Alertez immédiatement en cas d'échec
Ajoutez une deuxième étape protégée par if: failure(), qui fait le check-in vers la même URL suffixée de /fail. Cela indique à Mortemain que l'exécution a eu lieu mais a échoué, ce qui déclenche une alerte immédiate au lieu d'attendre l'expiration de la fenêtre du check :
- name: Ping Mortemain (échec) if: failure() run: curl -fsS -m 10 https://ping.mortemain.com/votre-uuid-de-check/fail
4. Chronométrez l'exécution avec un ping de démarrage (optionnel)
Ajoutez une étape avant le vrai travail qui fait le check-in vers /start. Mortemain mesure alors la durée de chaque exécution et peut signaler celle qui prend nettement plus de temps que d'habitude, utile pour repérer un job bloqué sur une dépendance qui ne répond plus :
- name: Ping Mortemain (démarrage) run: curl -fsS -m 10 https://ping.mortemain.com/votre-uuid-de-check/start - name: Exécuter la synchro run: ./scripts/sync.sh
Testez
Déclenchez le workflow manuellement depuis l'onglet Actions (workflow_dispatch) et regardez le check passer actif. Puis faites échouer une étape exprès, un code de sortie 1 suffit, et confirmez que l'alerte d'échec arrive immédiatement plutôt qu'après l'expiration de la fenêtre de tolérance.