Golf - Juniortävlingar

Dokumentationsportal

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 main krä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.