fix
Some checks failed
CD Preprod / Security gate (push) Successful in 31s
CD Preprod / Backend — Lint (push) Successful in 1m4s
CD Preprod / Frontend — Lint & Type-check (push) Successful in 1m10s
CD Preprod / Backend — Unit Tests (push) Successful in 1m5s
CD Preprod / Frontend — Unit Tests (push) Successful in 43s
CD Preprod / Backend — Integration Tests (push) Successful in 46s
CD Preprod / Build Frontend (push) Successful in 33s
CD Preprod / Build Backend (push) Successful in 54s
CD Preprod / Build Log Exporter (push) Successful in 30s
CD Preprod / Image security (${{ matrix.service }}, ${{ matrix.arch }}) (amd64, frontend) (push) Successful in 24s
CD Preprod / Image security (${{ matrix.service }}, ${{ matrix.arch }}) (amd64, backend) (push) Successful in 25s
CD Preprod / Image security (${{ matrix.service }}, ${{ matrix.arch }}) (amd64, log-exporter) (push) Successful in 22s
CD Preprod / Image security (${{ matrix.service }}, ${{ matrix.arch }}) (arm64, backend) (push) Successful in 24s
CD Preprod / Image security (${{ matrix.service }}, ${{ matrix.arch }}) (arm64, log-exporter) (push) Successful in 22s
CD Preprod / Image security (${{ matrix.service }}, ${{ matrix.arch }}) (arm64, frontend) (push) Successful in 1m31s
CD Preprod / Deploy to Preprod (push) Failing after 42s
CD Preprod / Notify Success (push) Has been skipped
CD Preprod / Notify Failure (push) Has been skipped

This commit is contained in:
David 2026-09-26 12:35:36 +02:00
parent 450f1ffc18
commit b0aa23c0d4
4 changed files with 12 additions and 12 deletions

View File

@ -1,3 +1,2 @@
self-hosted-runner: # All jobs use the existing ubuntu-latest runner label.
labels: {}
- xpeditis-deploy

View File

@ -248,9 +248,8 @@ jobs:
# ═══ 4. Déploiement ══════════════════════════════════════════════════════ # ═══ 4. Déploiement ══════════════════════════════════════════════════════
deploy: deploy:
name: Déployer en production name: Déployer en production
runs-on: xpeditis-deploy runs-on: ubuntu-latest
needs: [verify-image, build-frontend, image-security] needs: [verify-image, build-frontend, image-security]
# Gitea 1.22 ignores environments: serialize on the dedicated deployment runner.
steps: steps:
- uses: https://github.com/actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 - uses: https://github.com/actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
with: with:

View File

@ -329,7 +329,7 @@ jobs:
# ── 5. Deploy via Portainer ────────────────────────────────────────── # ── 5. Deploy via Portainer ──────────────────────────────────────────
deploy: deploy:
name: Deploy to Preprod name: Deploy to Preprod
runs-on: xpeditis-deploy runs-on: ubuntu-latest
needs: [build-backend, build-frontend, build-log-exporter, image-security] needs: [build-backend, build-frontend, build-log-exporter, image-security]
steps: steps:
- uses: https://github.com/actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 - uses: https://github.com/actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4

View File

@ -80,12 +80,14 @@ comme des protections effectives dans les workflows adaptés.
Docker. Les builds multiarchitecture ont besoin du support QEMU/binfmt. Docker. Les builds multiarchitecture ont besoin du support QEMU/binfmt.
Les services d'intégration sont joints via `postgres` et `redis`, sans ports Les services d'intégration sont joints via `postgres` et `redis`, sans ports
hôte fixes ; un runner en mode host n'est pas la cible de ces workflows. hôte fixes ; un runner en mode host n'est pas la cible de ces workflows.
2. Enregistrer **un seul runner** avec le label **`xpeditis-deploy`**, une capacité 2. Les déploiements préprod et production utilisent le runner existant avec le
**1**, et une limite d'exécution adaptée (par exemple 1 h). Les deux jobs de label **`ubuntu-latest`**, comme les builds et les audits. Aucun runner dédié
déploiement utilisent ce label : publication des alias, déploiement, santé et `xpeditis-deploy` n'est nécessaire. Ce runner doit aussi disposer de SSH et
fermeture du firewall restent dans le même job. Ne pas donner ce label à rsync pour le déploiement de production. Gitea 1.22 ne prenant pas en charge
plusieurs runners. Le runner doit être isolé des jobs de PR et disposer de `concurrency`, les workflows ne garantissent pas la sérialisation des
Docker, Git, curl, SSH et rsync. Sans ce runner, les déploiements restent en attente. déploiements si les runners autorisent plusieurs jobs simultanés.
Pour éviter les chevauchements, attendre la fin d'un déploiement avant de
déclencher le suivant sur le même environnement.
3. Protéger `dev`, `preprod`, `main` dans les réglages de branches Gitea : interdire 3. Protéger `dev`, `preprod`, `main` dans les réglages de branches Gitea : interdire
les push directs/force-push et exiger **Security gate**, les deux contrôles les push directs/force-push et exiger **Security gate**, les deux contrôles
qualité et les deux tests unitaires ; ajouter l'intégration pour preprod/main. qualité et les deux tests unitaires ; ajouter l'intégration pour preprod/main.