ADR : Workflow Git/CI Apps TS — main = prod + environnement de preview par PR¶
Contexte¶
Sur l’Apps TS liée à l’outil d’analyse (DB Neon), le flux actuel mélange main (prod) et une branche / env de préprod (development). Les contributeurs poussent souvent vers la préprod pour tester. Un écart se creuse avec main. En parallèle, l’historique Drizzle n’est plus fiable : certaines évolutions de schéma passent par des requêtes SQL directes. Ce fonctionnement ralentit les développements et a déjà provoqué des incidents de migration en production. (update sujets build 06/08)
Options envisagées¶
Option A — Continuer préprod partagée + rattrapage Drizzle « au fil de l’eau »¶
- Avantages : pas de setup CI immédiat.
- Inconvénients : une seule préprod pour N personnes ; écart
main↔ préprod récurrent ; migrations hors process ; pas de rollback propre après merge.
Option B — Modèle déjà en place côté monorepo tech (Denis) : preview par PR¶
- Description :
main= prod ; chaque feature part d’une branche + PR ; Railway déploie un env par PR ; Neon branching pour une DB isolée ; CI (tests, Bugbot, migrations à jour) bloque le merge si rouge ; merge PR → prod. - Avantages : parallélisme sans s’écraser ; conflits résolus sur la branche ; un seul chemin vers la prod ; aligné sur le monorepo existant (réutilisable comme référence).
- Inconvénients : setup CI / GitHub / Railway à faire ; changement d’habitudes (plus de « je merge pour tester ») ; memories IA à purger.
Option C — Tout tester en local uniquement¶
- Inconvénients : l’équipe ne tourne presque jamais l’app en local (dépendances API) ; ne résout pas le besoin de preview partageable.
Décision¶
Option retenue : B.
Compléments actés le même jour :
- Reset Drizzle : partir de l’état actuel comme migration initiale ; ne pas reconstruire l’historique manquant.
- Périmètre d’écriture DB Apps TS : Romain + Jérôme ; Dimitri reste sur le repo analyse et échange via endpoints.
- Livrables de démarrage : one-pager + plan (Romain, review Denis/Alban) ; reset migrations (Romain) ; purge des memories Cursor qui poussent sur
main. - Fenêtre : maintenant, tant que
main/ préprod sont relativement resynchro et que l’équipe est en prise de hauteur plutôt qu’en rafale de micro-fix.
Conséquences¶
- La branche / env de préprod partagée cesse d’être le chemin nominal de test.
- L’ADR-017 legacy devient historique pour l’Apps TS.
- Toute évolution de schéma passe par une migration versionnée, appliquée via le process CI.
- Jérôme doit être aligné via le one-pager avant de continuer à toucher la DB.
- Si le plan IA de Romain coince sur les settings GitHub/Railway, Denis peut reprendre le setup.
Hors-scope¶
- Généralisation immédiate à tous les repos Bricks (le pattern existe déjà côté monorepo ; ici on l’applique à Apps TS / outil d’analyse).
- Choix d’outil de design / pipeline produit d’Alban (débat build vs buy, non tranché).