Guide · CI/CD
Surveiller GitLab CI avec un interrupteur homme mort
Les emails de pipeline de GitLab vous préviennent quand un job échoue, mais pas quand le pipeline ne tourne plus du tout : une planification en pause, un runner qui a discrètement disparu, un déclencheur cron cassé. Un check-in attrape les deux cas, car il alerte sur le silence, pas seulement sur un événement d'échec.
1. Créez un check
Créez un check dans Mortemain, réglez sa planification sur celle de votre pipeline (ou de son déclencheur planifié), et copiez l'URL de ping :
https://ping.mortemain.com/your-check-uuid
2. Faites le check-in en cas de succès depuis after_script
after_script s'exécute après chaque job du pipeline, y compris ceux qui ont échoué, donc protégez l'appel avec CI_JOB_STATUS pour ne faire le check-in que si tout s'est bien passé :
build: stage: build script: - ./run-build.sh after_script: - # $CI_JOB_STATUS vaut "success" ou "failed" ici - if [ "$CI_JOB_STATUS" = "success" ]; then curl -fsS -m 10 https://ping.mortemain.com/your-check-uuid fi
Vous préférez une étape finale dédiée ? Ajoutez un petit job qui ne s'exécute qu'une fois que tout le reste a réussi :
stages: - build - test - notify heartbeat: stage: notify image: curlimages/curl:latest script: - curl -fsS -m 10 https://ping.mortemain.com/your-check-uuid
3. Alertez immédiatement en cas d'échec
Ajoutez un job qui ne s'exécute que si une étape précédente échoue, et faites-lui appeler l'URL /fail. Mortemain alerte immédiatement au lieu d'attendre que le check reste silencieux :
notify_failure: stage: notify image: curlimages/curl:latest script: - curl -fsS -m 10 https://ping.mortemain.com/your-check-uuid/fail rules: - when: on_failure
4. Couvrez les pipelines planifiés
Si ce pipeline tourne via un Scheduled pipeline (CI/CD → Schedules), réglez la période de votre check sur le même intervalle. Si la planification est mise en pause, si un tag de runner ne correspond plus, ou si le planificateur de GitLab lui-même se bloque, pas d'exécution veut dire pas de ping, et Mortemain alerte une fois la fenêtre de grâce dépassée. Vous voulez mesurer la durée du pipeline ? Appelez …/your-check-uuid/start en toute première étape et Mortemain calculera la durée entre cet appel et le ping de succès.
Testez
Lancez le pipeline une fois (Run pipeline ou un push) et vérifiez que le check passe actif. Puis cassez volontairement un job et vérifiez que le job d'échec envoie bien le ping /fail et que l'alerte arrive immédiatement.