Modulo 9 — Pipeline di build e test
Blocco B · La filiera automatizzata · 4 ore
Obiettivi
Integrare i test automatici come cancello; build&push condizionati (main e tag);
flusso di release: tag Git vX.Y.Z → immagine X.Y.Z sul registry.
Agenda
| Ora | Attività |
|---|---|
| 0:00–0:45 | I test come contratto minimo: cosa testare (health, casi d'uso principali) e perché i test dell'API girano senza database |
| 0:45–1:30 | Regole (rules) e flussi: branch di lavoro = veloci (lint+test); main = build sha; tag = release semver. Variabili predefinite di GitLab |
| 1:30–3:30 | Lab 9: stage test, build&push versionato, prima release v1.0.0, test rotto che blocca la pubblicazione |
| 3:30–4:00 | Debrief: cosa "certifica" ora un'immagine sul registry; anticipo sicurezza (→ Modulo 10) |
Concetti chiave
- Nessuna immagine pubblicata senza test passati: la pubblicazione è una promessa.
- Un tag Git è l'atto formale di release; tutto il resto lo fa la pipeline.
- Design for CI: l'app degradabile (memoria senza DB) rende i test banali da eseguire.
Materiali
- Lab:
lab/start/CONSEGNA.md(test forniti in api/test_app.py) →lab/final/