CI/CD
Le pipeline CI/CD de nhic_dbt est défini dans .github/workflows/dbt.yaml au sein du monorepo. Il construit et publie une image Docker à chaque PR et à chaque push sur main. Les exécutions dbt de production ne sont pas déclenchées depuis la CI — elles sont gérées par Prefect.
Vue d’ensemble du pipeline
Étapes du workflow
Checkout — actions/checkout standard avec l’historique complet.
Identifiants AWS — Configurés via OIDC (aucun secret de longue durée). Le dépôt GitHub Sand-EnterpriseAI/Healthcare.MOH.RWA.HIC est approuvé par le compte AWS.
AWS Account: 600627345833
Region: eu-west-1Build Docker — Le Dockerfile de nhic_dbt empaquette le projet dbt avec toutes ses dépendances Python. L’image est étiquetée dbt.
Push vers ECR — L’image est poussée vers le dépôt ECR dbt dans eu-west-1. Le tag de l’image est fixe (dbt), de sorte que Prefect récupère toujours la dernière construction.
Exécutions de production via Prefect
dbt n’est jamais exécuté directement depuis la CI en production. Une fois l’image Docker poussée vers ECR, les workflows Prefect (workflows/models/ dans le projet Prefect) récupèrent l’image et exécutent les commandes dbt dans le cadre de pipelines de données planifiés ou déclenchés.
Cette séparation implique :
- La CI est responsable de la construction et de la publication d’une image valide
- Prefect est responsable de la planification, de l’orchestration et des reprises des exécutions de production
- Les journaux et artefacts des exécutions dbt sont visibles dans l’interface Prefect
Pour déclencher manuellement une exécution dbt de production, utilisez l’interface ou la CLI Prefect afin de lancer le déploiement concerné — n’exécutez pas dbt run directement sur la base de données de production.
Ajouter une nouvelle étape au workflow
Si vous devez modifier le pipeline de CI (p. ex. ajouter une étape de linting ou changer la stratégie de tags ECR), modifiez .github/workflows/dbt.yaml à la racine du monorepo et ouvrez une PR pour relecture.