Skip to content

ci: construit et scanne les 3 images en parallèle + expose le dépôt CA - #11

Merged
PhilippeVienne merged 3 commits into
devfrom
ci/parallelize-image-builds
Sep 13, 2026
Merged

PhilippeVienne merged 3 commits into
devfrom
ci/parallelize-image-builds

Conversation

@PhilippeVienne

Copy link
Copy Markdown
Contributor

Résumé

  • build passait CA/TSA/OCSP en séquentiel dans un seul job (~3x le temps d'une seule image). Reprend la matrice déjà utilisée par publish, sur 3 runners en parallèle.
  • Corrige le HTTPRoute de la CA : la page de dépôt public (GET /, PR feat(ca): dépôt public des certificats + marquage STAGING #10) n'était pas joignable de l'extérieur, seuls /download, /api/v1/ca.pem et /api/v1/conformance étaient routés. Trouvé en testant pki.staging.open-eidas.eu juste après déploiement (404).

⚠️ Renomme le check requis : « Construction des images (CA, TSA, répondeur OCSP) » devient 3 checks « Construction et scan des images (CA/TSA/répondeur OCSP) ». Il faudra mettre à jour les rulesets dev et main en conséquence (hors dépôt, via l'API) une fois cette PR mergée.

Plan de test

  • helm lint/helm template : la nouvelle règle / est bien rendue
  • CI verte

build passait CA, TSA et OCSP en séquentiel dans un seul job — environ
3x le temps d'une seule image (compilation Rust + scan Trivy). Reprend
la même matrice que publish, sur 3 runners en parallèle.

Renomme le check correspondant : « Construction des images (CA, TSA,
répondeur OCSP) » devient trois checks « Construction et scan des
images (CA/TSA/répondeur OCSP) » — mise à jour des rulesets dev et main
dans le même geste (hors dépôt, via l'API).
La nouvelle page de dépôt public (GET /, PR précédente) n'était pas
joignable de l'extérieur : le HTTPRoute ne routait que /download,
/api/v1/ca.pem et /api/v1/conformance. Trouvé en testant
pki.staging.open-eidas.eu juste après déploiement (404).
Copilot AI lite review requested due to automatic review settings September 13, 2026 11:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The CI checks need distinct, non-cancelled results, and the CA server must implement the exposed root route.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

This pull request parallelizes CA/TSA/OCSP image builds and scans and exposes the CA repository page through the public route.

Changes:

  • Replaces sequential builds with a three-entry matrix.
  • Adds an exact / HTTPRoute.
  • Renames the image-build checks.
File summaries
File Review findings
.github/workflows/ci.yml Matrix job names do not identify the image, and fail-fast may cancel sibling builds.
deploy/helm/open-eidas/templates/ca/httproute.yaml The CA server lacks a GET / handler, so the new route still returns 404.
Review details

Suppressed comments (2)

.github/workflows/ci.yml:98

  • The matrix strategy defaults to fail-fast: true, so a build or Trivy failure for one image cancels the other image jobs. With three per-image checks intended to be required, this leaves cancelled checks without independent results; disable fail-fast so all three builds and scans report their status.
    strategy:
      matrix:
        include:

deploy/helm/open-eidas/templates/ca/httproute.yaml:48

  • This forwards / to the CA Service, but the current ca-server router does not register GET / (it only defines the API, download, and /healthz routes in bin/ca-server/src/http.rs:167-179). The Gateway will therefore reach the pod and still return 404, so the public repository page remains inaccessible. Add the root handler/route to the server before exposing this path.
    - matches:
        - path:
            type: Exact
            value: /
  • Files reviewed: 2/2 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/ci.yml Outdated
… OCSP)

Sans référencer explicitement matrix.image dans le nom du job, GitHub
affichait toutes les clés de la matrice (dockerfile, tag, pin_env
compris) — illisible et fragile au moindre champ interne ajouté.
Copilot AI review requested due to automatic review settings September 13, 2026 11:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Deux problèmes modérés restent à corriger avant approbation.

Review details

Suppressed comments (2)

.github/workflows/ci.yml:142

  • Les trois legs de cette matrice utilisent le scope GHA par défaut (buildkit). Avec cache-to, le dernier export écrase les caches exportés par les deux autres images ; leurs couches ne seront donc généralement pas réutilisées au prochain run, ce qui annule une partie du gain de parallélisation. Utilisez un scope stable par image (et le même scope dans publish).
          cache-from: type=gha
          cache-to: type=gha,mode=max

deploy/helm/open-eidas/templates/ca/httproute.yaml:48

  • Cette règle ne rend pas encore le dépôt accessible : dans l’état de cette branche, ca-server ne déclare aucun handler GET / (bin/ca-server/src/http.rs:167-179), donc la Gateway transmettra cette requête au service qui répondra 404. Il faut intégrer le handler/page du dépôt dans cette branche (ou fusionner cette route avec ce changement) avant que l’exposition annoncée soit fonctionnelle.
    - matches:
        - path:
            type: Exact
            value: /
  • Files reviewed: 2/2 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

@PhilippeVienne
PhilippeVienne merged commit f2a9e4f into dev Sep 13, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants