e2e.yml / contract.yml : sonde de santé en dur, et aucun moyen de passer l'environnement de test d'un satellite #2

Closed
opened 2026-10-12 19:39:57 +00:00 by nicolas-fryder · 1 comment

Deux constats en branchant ATLAS (profil next-fullstack) sur @v1.

1. contract.yml attend $BASE/health en dur

Observé : un next-fullstack sert sa santé sous /api/health (docs/profils.md). Sur ATLAS, /health rend un 307 (redirection vers la connexion), que curl -f prend pour un succès : le fuzzing démarre avant que l'application soit prête. smoke.yml a déjà l'entrée chemin-sante pour ce cas.
Proposition : la même entrée chemin-sante dans contract.yml et e2e.yml.

2. Aucune entrée env

Observé : les deux workflows ne posent que DATABASE_URL, PUBLIC_URL, NODE_ENV=test (et E2E_BASE_URL). Un satellite qui exige d'autres variables au démarrage (ATLAS : AUTH_SECRET, compte de secours de test, cible HQ invalide…) ne démarre pas.
Contournement : ATLAS passe start: start:ci, un script qui complète l'environnement avec des valeurs de test et refuse de tourner hors CI (scripts/demarrer-ci.mjs).
Proposition : une entrée env-file (chemin d'un fichier de valeurs de TEST committé) ou env (multiligne).

Ouvert depuis le rejeu du rétrofit d'ATLAS (étape 9b).

Deux constats en branchant ATLAS (profil next-fullstack) sur `@v1`. ## 1. `contract.yml` attend `$BASE/health` en dur **Observé** : un next-fullstack sert sa santé sous `/api/health` (`docs/profils.md`). Sur ATLAS, `/health` rend un **307** (redirection vers la connexion), que `curl -f` prend pour un succès : le fuzzing démarre avant que l'application soit prête. `smoke.yml` a déjà l'entrée `chemin-sante` pour ce cas. **Proposition** : la même entrée `chemin-sante` dans `contract.yml` et `e2e.yml`. ## 2. Aucune entrée `env` **Observé** : les deux workflows ne posent que `DATABASE_URL`, `PUBLIC_URL`, `NODE_ENV=test` (et `E2E_BASE_URL`). Un satellite qui exige d'autres variables au démarrage (ATLAS : `AUTH_SECRET`, compte de secours de test, cible HQ invalide…) ne démarre pas. **Contournement** : ATLAS passe `start: start:ci`, un script qui complète l'environnement avec des valeurs de test et refuse de tourner hors CI (`scripts/demarrer-ci.mjs`). **Proposition** : une entrée `env-file` (chemin d'un fichier de valeurs de TEST committé) ou `env` (multiligne). *Ouvert depuis le rejeu du rétrofit d'ATLAS (étape 9b).*
Author
Owner

Les deux points sont livrés dans pipeline.yml, qui remplace contract.yml et e2e.yml (D-084).

  1. Santé : l'entrée sante existe depuis v1.5. Le pipeline exige un 200, si bien qu'un 307 vers la page de connexion ne passe plus pour « prêt ».
  2. Environnement : l'entrée env-file arrive en v1.8 (PR #12). Elle prend le chemin d'un fichier COMMITTÉ de valeurs de TEST, au format CLE=valeur. Ces variables sont chargées dans le job application, donc pour le build, l'intégration et le fuzzing.
    • Le pipeline refuse ce qu'il pose lui-même (DATABASE_URL, EQS_TEST_POSTGRES_URL, NODE_ENV, PUBLIC_URL).
    • Il refuse aussi toute ligne mal formée, en donnant son numéro.

v1 pointe maintenant sur v1.8. ATLAS peut remplacer start: start:ci / scripts/demarrer-ci.mjs par un env-file.

Les deux points sont livrés dans `pipeline.yml`, qui remplace `contract.yml` et `e2e.yml` (D-084). 1. **Santé** : l'entrée `sante` existe depuis v1.5. Le pipeline exige un **200**, si bien qu'un 307 vers la page de connexion ne passe plus pour « prêt ». 2. **Environnement** : l'entrée `env-file` arrive en **v1.8** (PR #12). Elle prend le chemin d'un fichier COMMITTÉ de valeurs de TEST, au format `CLE=valeur`. Ces variables sont chargées dans le job `application`, donc pour le build, l'intégration et le fuzzing. - Le pipeline refuse ce qu'il pose lui-même (`DATABASE_URL`, `EQS_TEST_POSTGRES_URL`, `NODE_ENV`, `PUBLIC_URL`). - Il refuse aussi toute ligne mal formée, en donnant son numéro. `v1` pointe maintenant sur v1.8. ATLAS peut remplacer `start: start:ci` / `scripts/demarrer-ci.mjs` par un `env-file`.
Sign in to join this conversation.
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#2
No description provided.