CI/CD-principer
Detta dokument beskriver hur CI/CD ska införas stegvis i Golf - Juniortävlingar.
Målbild
CI/CD ska säkerställa att kod som går vidare mot release är byggbar, testad och dokumenterad.
När CI är införd ska en funktion inte räknas som färdig förrän CI är grön.
Fas 1 - Grundläggande kontroller
Första CI-nivån bör kontrollera:
- Python syntax check.
- Import av centrala moduler.
- Installation av dependencies från
requirements.txt. - Docker build.
- Kontroll att dokumentationsfiler finns.
Fas 2 - Applikationstester
Nästa nivå bör lägga till:
- Flask smoke test.
- Test av startsida.
- Test av
/docs. - Test av databasinitiering.
- Test av importfunktioner med testdata.
Fas 3 - Releasekontroller
Därefter bör CI kontrollera:
- att
VERSIONär uppdaterad, - att release notes finns,
- att dokumentation är uppdaterad,
- att Docker-image kan byggas,
- att releasepaket kan skapas,
- att checksumma genereras.
Fas 4 - Merge- och releasegate
När projektet har fjärr-Git och CI-plattform ska följande gälla:
- Merge till
mainkräver grön CI. - Releasepaket byggs bara från grön commit.
- Taggning sker endast efter godkänd test.
- Produktion deployas bara från
main.
Första föreslagna pipeline
checkout
↓
python -m py_compile *.py
↓
pip install -r requirements.txt
↓
python -c "import web_app"
↓
docker build
↓
smoke test /docs
↓
release package check
Princip
CI/CD ska införas stegvis, men varje steg ska ge verkligt värde och minska risken för fel i produktion.