Retour catalogue
Junior~8 hsoftware engineering dataopstransformation

Une CI qui teste vraiment ton SQL

Mets en place une CI qui refuse régressions SQL,pas qui les espère.

Contexte

Plupart des projets dbt en production ont une CI qui tourne mais ne dit rien. Tests qui passent à vide. Linter ignoré. Contrats de données absents. Résultat : régression silencieuse sur une colonne renommée arrive en prod et casse trois dashboards.

Dans ce projet, tu construis CI que tu aurais voulu trouver à ton arrivée. Workflow GitHub Actions qui lint, qui teste, qui vérifie les contrats de schéma, et qui refuse merge si un seul invariant casse.

Tu pars d'un projet dbt scaffold avec modèles à compléter et assertions à câbler. À la fin, tu pushes sur la branche, CI tourne, et soit elle est verte parce que tu as tout couvert, soit elle est rouge avec un message précis sur ce qui manque.

Architecture

Stack et flow du projet

Loading diagram…

Ce que tu vas livrer

  • 3 modèles dbt (staging → intermediate → marts) avec sources, tests singulars et contrats `_schema.yml`
  • Workflow `.github/workflows/iamdataeng-evaluate.yml` qui lint avec sqlfluff, run `dbt build`, et compare rows attendus
  • Fichier `dbt_project.yml` propre avec quoting, materializations explicites, et tags par maturité
  • PR template qui force le contributeur à expliquer son grain et ses tests

Ce que CI vérifie

  • Workflow GitHub Actions doit passer vert sur ta solution finale (sqlfluff, dbt parse, dbt build, dbt test)
  • Chaque mart doit avoir au moins 1 test unique + 1 test not_null + 1 test relationships
  • Contrats `_schema.yml` doivent matcher exactement les colonnes produites (pas de drift schema/code)
  • Row count attendu sur mart final est figé dans la rubrique,tout off-by-one fait échouer la CI

Prérequis

  • Bases SQL (joins, agrégations, fonctions de fenêtre niveau confortable)
  • Familier avec git et avec les pull requests (pas besoin d'être expert)
  • dbt ou non,on part du zéro côté outil, mais ça aide d'avoir vu passer le mot

Comment ça marche

  1. 01

    Tu cliques « Commencer »

    On forke template sur ton compte GitHub. Aucune install locale, aucun Docker à débugger.

  2. 02

    Tu codes dans GitHub Codespaces

    VS Code dans ton navigateur, prêt à l'emploi : DBs locales, dépendances Python, tout dans devcontainer. 60h/mois gratuits chez GitHub.

  3. 03

    Tu pushes, CI te répond

    GitHub Actions exécute rubrique. Vert = validé. Rouge = chaque check échoué te dit ce qui manque, en français.

Information précontractuelle

  • Vendeur : Merta
  • Prix : 29 € TTC, franchise de TVA
  • Livraison : numérique, immédiate après paiement
  • Droit de rétractation : exclu après début d'exécution, voir case à cocher
  • Paiement sécurisé via Stripe

Achat soumis aux CGV.