pipeline.yml : la CI d'un satellite en trois jobs (D-084), et la passe de nuit #10

Merged
nicolas-fryder merged 10 commits from nicolas-fryder/dev into main 2026-10-16 06:24:53 +00:00 AGit

Nouveau pipeline.yml (porte, sécurité, application : un install et un build par job ; l'audit après l'intégration et le fuzzing, avec la durée de la porte et la conformité). Caches : store pnpm dans .git, compilation Next, pip. smoke interroge /version au lieu de dormir 180 s. renovate sauté tant que le bot n'est pas configuré, image par digest, configuration migrée et .forgejo/workflows enfin lus. README et exemple. Vérificateur : T13 (épingles identiques). Éprouvé sur la démo, le gabarit et ATLAS (EQS/ATLAS#10 entièrement vert). 🤖 Generated with Claude Code

Nouveau pipeline.yml (porte, sécurité, application : un install et un build par job ; l'audit après l'intégration et le fuzzing, avec la durée de la porte et la conformité). Caches : store pnpm dans .git, compilation Next, pip. smoke interroge /version au lieu de dormir 180 s. renovate sauté tant que le bot n'est pas configuré, image par digest, configuration migrée et .forgejo/workflows enfin lus. README et exemple. Vérificateur : T13 (épingles identiques). Éprouvé sur la démo, le gabarit et ATLAS (EQS/ATLAS#10 entièrement vert). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Le runner fait un job à la fois : neuf jobs se paient en série, cinq
installations et trois next build par commit sur ATLAS, et un audit
envoyé avant le verdict de l'intégration et du fuzzing.

porte (install, eqs check, contrat), sécurité (quatre scans, aucun
install), application (un install, un build ; intégration, fuzzing sur
une base neuve, audit qui voit la durée de la porte et la conformité).
Store pnpm dans .git : le seul montage où pnpm lie au lieu de copier.

En essai : pas encore appelé par un satellite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Le gabarit (nest) exporte depuis apps/api/dist/openapi.js, qu'eqs check
ne construit pas. Même règle que l'outil : construire si eqs.openapi est
sous dist/ ou build/, jamais pour un export sur les sources.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Une entrée par lockfile, repérée sous la racine ou apps/* : un satellite
n'a rien à déclarer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pipeline.yml embarque les scans de security.yml : deux copies des
épingles, qui divergeraient en silence au premier renouvellement. T13
les compare (prouvé rouge sur une version de trivy différente).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Planifié à 04:00 UTC depuis l'activation d'Actions, il aurait échoué
chaque nuit faute de FORGEJO_API_URL et RENOVATE_TOKEN. L'image tournait
sur une étiquette mutable, avec un jeton qui écrit dans tous les dépôts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Le sleep tenait l'unique runner de la forge 3 minutes à chaque push sur
main, même quand Coolify avait fini en 40 s. On interroge /version
toutes les 10 s et on sort dès que la production sert le commit ; même
plafond. Éprouvé contre la production d'ATLAS (sortie en 1 s ; plafond
atteint sur un commit faux).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
eqs check construit les applications Next pour les type-vérifier. Même
clé que le job application.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Chaque run réinstallait ~24 s de paquets Python à version épinglée
identique. Les workflows par étage font en double ce que fait
pipeline.yml : leur en-tête le dit, pour qu'une correction ne soit pas
faite d'un seul côté.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix(renovate): la configuration migrée, et les .forgejo/workflows enfin lus
All checks were successful
verify / portes (pull_request) Successful in 6s
ab81e11319
Renovate 44 signalait « Config needs migrating » (matchPackagePatterns).
Et son gestionnaire github-actions ne lit que .github/workflows : la règle
d'épinglage des actions ne voyait aucun fichier de la flotte.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Infrastructure/eqs-workflows!10
No description provided.