Surveiller un workflow GitHub Actions planifié
Les workflows planifiés échouent en silence si Actions est désactivé, si un secret expire ou si une étape plante. Une dernière étape curl prouve que le job s’est terminé avec succès.
Avant de commencer
Créez un monitor avec la fréquence réelle de votre workflow, puis copiez son URL depuis le dashboard. Son token est secret : ne le publiez pas.
Installation
Copiez l’URL du monitor dans un secret
Créez un monitor aligné sur la planification (ex. 0 6 * * * → quotidien). Dans le dépôt : Settings → Secrets and variables → Actions → New repository secret nommé VERIFAGENT_URL avec l’URL de ping complète.
https://verifagent.com/api/ping/your-ping-tokenAjoutez une étape heartbeat finale
Placez curl après les étapes métier pour qu’un build en échec ne pingue jamais. Utilisez le secret : ne committez jamais le token.
name: Nightly job
on:
schedule:
- cron: "0 6 * * *"
workflow_dispatch:
jobs:
run:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run the real work
run: ./scripts/nightly.sh
- name: Ping Verifagent
run: curl -fsS "${{ secrets.VERIFAGENT_URL }}"Optionnel : faire échouer le job si le ping échoue
curl -fsS fait déjà échouer l’étape sur un HTTP hors 2xx. Gardez-la en dernier pour ne l’atteindre qu’après le succès des étapes précédentes.
- name: Ping Verifagent
run: curl -fsS "${{ secrets.VERIFAGENT_URL }}"Lancez workflow_dispatch une fois
Depuis l’onglet Actions, lancez le workflow manuellement. L’étape de ping doit afficher 200 et {"ok":true}. Vérifiez le statut Up dans Verifagent.
{"ok":true}Routes disponibles
L’URL de base suffit pour un heartbeat. Les variantes enrichissent l’historique si votre plateforme gère plusieurs branches.
GET https://VOTRE_URL_DE_PINGPOST https://VOTRE_URL_DE_PING/successPOST https://VOTRE_URL_DE_PING/fail?msg=ErreurVérification
Après un run vert, le monitor est Up. Désactivez le workflow ou faites échouer une étape tôt : aucun ping ne doit arriver et Verifagent ouvrira un incident après période + grâce.
200 {"ok":true}. Le monitor passe de Pending à Up.