CI/CD-principer
CI/CD införs stegvis. Den här versionen etablerar en liten valideringskärna som kan användas lokalt, i GitHub Actions eller från en annan CI-plattform.
Nuvarande nivå: CI-grund
Den gemensamma startpunkten är:
./scripts/ci_check.sh fast
./scripts/ci_check.sh full
./scripts/ci_check.sh release
fast: metadata, dokumentationskrav, Python-syntax och whitespace.full:fastplus hela unittest- och integrationstestsviten.release:fullplus verktygskrav för paketering.
GitHub Actions kör full och en separat Docker-build. Workflowen gör inga förändringar i TEST eller PROD.
Releaseartefakter
scripts/build_release.sh:
- kräver ren Git-arbetskatalog,
- kräver att argumentet matchar
VERSION, - kör releasekontrollerna,
- bygger zip och SHA-256,
- verifierar zipfilen,
- vägrar skriva över en artefakt med samma version.
Principen är alltid: ett versionsnummer motsvarar exakt ett innehåll.
Avsiktlig utbyggbarhet
Produktionsflödet byggs senare som separata lager ovanpå CI-kärnan:
- branch protection och obligatorisk grön CI,
- release/tag-gate,
- signerade eller attesterade artefakter,
- TEST-deploy från godkänd artefakt,
- manuell produktionsgate,
- rollback- och efterkontroller.
Deploylogik ska inte byggas in i ci_check.sh. Därmed kan kontrollerna återanvändas oavsett framtida CI/CD-plattform.
Testprincip
Prioriteringsordning:
- beteendetester av observerbart resultat,
- integrationstester av route och databas,
- kontraktstester för centrala HTML-vyer,
- källkodstester endast när själva strukturkontraktet är avsiktligt.