7 Commits
Author SHA1 Message Date
bbaudouin 3874a35e91 Merge pull request '🔒️ build-push construit et scanne sur toute référence, PR comprise ; il ne publie que sur develop et les tags (RF_CICD#7)' (#5) from ci/7-scan-a-chaque-construction into develop
Reviewed-on: #5
Reviewed-by: bbaudouin <b.baudouin@pm.me>
v1.0.0
2026-10-08 13:30:24 +02:00
george-claudeandClaude Opus 5.5 50e0e9e258 🔒️ build-push construit et scanne sur toute référence, PR comprise ; il ne publie que sur develop et les tags (raggaroth-factory/RF_CICD#7)
Demande de Benjamin, 2026-10-08 : « il faut que le scan se fasse au build
pour empêcher le build ». Jusqu'ici, le scan ne tournait que dans la
publication, après la fusion : une PR n'était jamais scannée, et une
dépendance vulnérable passait la revue.

- Toute référence : construction + scan bloquant. Seules develop et
  vX.Y.Z publient ; une PR, une autre branche ou main s'arrêtent après le
  scan, sous un tag local « controle-<sha> » jamais poussé.
- Identifiants du registre facultatifs : lus et exigés seulement si la
  référence publie. Une PR ne se connecte pas au registre.
- REGISTRY_AUTH_FILE n'est exporté que pour publier : pointé sur un
  fichier absent, il faisait échouer buildah jusque dans l'export local
  vers le scan (constaté au banc, « credential file is not accessible »).
- Sortie « publie » ; « tags » vide quand rien n'est publié.

Banc, 2026-10-08, les deux étapes extraites du YAML et enchaînées :
  A. PR, sans identifiants, saine      → code 0, registre vide
  B. PR, sans identifiants, vulnérable → code 1, image refusée
  C. develop, identifiants             → :dev et :<sha> publiés
  D. develop, sans identifiants        → code 1, erreur explicite
  E. main                              → code 0, rien publié

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VyxLNGHojdXeRMQgWFgzRV
2026-10-08 13:20:09 +02:00
bbaudouin 9d88bc3639 Merge pull request '🔒️ build-push refuse de publier une image qui porte une CVE HIGH ou CRITICAL corrigeable (RF_CICD#7)' (#3) from ci/7-scan-cve-bloquant into develop
Reviewed-on: #3
Reviewed-by: bbaudouin <b.baudouin@pm.me>
2026-10-07 22:24:00 +02:00
george-claudeandClaude Opus 5.5 e6a5fd6252 🔒️ build-push refuse de publier une image qui porte une CVE HIGH ou CRITICAL corrigeable (raggaroth-factory/RF_CICD#7)
Entre la construction et la publication, Trivy examine l'image, exportée
en répertoire OCI : pas de démon, et rien n'est publié avant le verdict.

Seuil décidé par Benjamin le 2026-10-07 : HIGH et CRITICAL corrigeables
bloquent ; le reste est rapporté sans bloquer. Le seuil n'est pas une
entrée : un dépôt ne l'abaisse pas pour lui seul. Exceptions dans
.trivyignore.yaml, chacune avec « statement » et « expired_at » —
vérifiés par l'action, faute de quoi elle refuse le fichier.

Banc du 2026-10-07, Ubuntu 24.04 non privilégié, buildah 1.33.7, trivy
0.75.0 vérifié par empreinte, registre jetable :
  1. frontend actuel          → bloqué (libexpat, pcre2 HIGH corrigeables)
  2. + apk upgrade            → publié
  3. + exceptions futures     → publié
  4. + exceptions expirées    → bloqué
  5. exception sans date      → refusé à la validation

Constaté en route : « trivy --input » refuse une archive OCI ; il veut
l'archive Docker ou le répertoire OCI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VyxLNGHojdXeRMQgWFgzRV
2026-10-07 22:15:54 +02:00
bbaudouin 4f9fe0d1f0 Merge pull request '👷 L'action build-push s'installe dans un dépôt public (RF_CICD#3)' (#1) from ci/3-action-build-push into develop
Reviewed-on: #1
2026-10-07 15:47:37 +02:00
george-claudeandClaude Opus 5.5 2ad99bb3ea 👷 L'action build-push s'installe dans un dépôt public (raggaroth-factory/RF_CICD#3)
Premier vrai run, PRJ002-ScrumBoard-Backend run 31 : act_runner clone les
actions de « uses: » sans s'authentifier, et RF_CICD étant privé, Gitea
répond « repository not found ». L'action déménage ici, dans l'organisation
« public » — un dépôt public dans « raggaroth-factory » resterait invisible,
l'organisation elle-même l'étant aux anonymes.

Reprise de RF_CICD/actions/build-push telle qu'éprouvée, moins ce qui
décrivait l'infrastructure : le tag de l'image de job et le chemin de son
Containerfile quittent le message d'erreur, et les fichiers temporaires
perdent leur préfixe rf-cicd. Le README pose la règle qui en découle : rien
de propre à une machine, un compte ou un chemin n'entre dans ce dépôt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VyxLNGHojdXeRMQgWFgzRV
2026-10-07 15:41:49 +02:00
bbaudouin 0f1a0ab319 first commit 2026-10-07 15:39:25 +02:00