Golf - Juniortävlingar

Dokumentationsportal

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: fast plus hela unittest- och integrationstestsviten.
  • release: full plus 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:

  1. kräver ren Git-arbetskatalog,
  2. kräver att argumentet matchar VERSION,
  3. kör releasekontrollerna,
  4. bygger zip och SHA-256,
  5. verifierar zipfilen,
  6. 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:

  1. beteendetester av observerbart resultat,
  2. integrationstester av route och databas,
  3. kontraktstester för centrala HTML-vyer,
  4. källkodstester endast när själva strukturkontraktet är avsiktligt.