Runbooks OrbitRunbook — Mettre la CI en pause

Runbook — Mettre la CI en pause

Mettre la CI en pause avec une variable quand le quota GitHub Actions est épuisé.

Quand le quota GitHub Actions du compte est épuisé, chaque job échoue en 1 à 4 secondes sans aucun log : aucun runner ne démarre. Ce n'est pas une panne du code. Pour ne pas être bloqué par des checks rouges en attendant, la CI se met en pause avec une variable, sans toucher au code.

Mettre en pause

  1. GitHub → le dépôt → Settings → Secrets and variables → Actions → Variables.
  2. New repository variable : nom CI_PAUSED, valeur true.

Tous les jobs de ci.yml, secret-scan.yml et dependency-watch.yml passent alors en skipped au lieu d'échouer. GitHub décide ce « skipped » lui-même, sans runner ni minute consommée, et un check requis « skipped » compte comme réussi : les PR redeviennent mergeables.

Les workflows de base de données (Deploy production database, Back up production database) ne sont jamais mis en pause : ils sont manuels et protègent la production. Ils ont besoin du quota.

Ce qu'on perd pendant la pause

Plus aucun filet automatique sur GitHub : ni lint, ni tests, ni build, ni E2E, ni scan de secrets. Il faut donc tout vérifier en local avant de merger (pnpm check, pnpm build, pnpm e2e, pnpm db:drift, pnpm audit:legacy) et le dire dans la PR. Ne jamais merger du code non vérifié « parce que la CI est en pause ».

Réactiver

  1. Quand le quota est revenu (ou la limite de dépense relevée), supprimer la variable CI_PAUSED.
  2. Relancer les checks des PR mergées pendant la pause (Actions → le workflow → Re-run) et vérifier un passage complet sur main.
  3. Si un job rouge est réel (il dure des dizaines de secondes et a des logs), le corriger.

Un test (workflow-pins.test.ts) vérifie que chaque job concerné porte cet interrupteur.