Files

1.9 KiB

Gitea immutable releasepad

Een push naar main publiceert geen productiecode. Alleen een expliciete semantische tag v*.*.* start .gitea/workflows/release.yml. De runner:

  1. verifieert de volledige repository;
  2. bouwt de Unraid-image met commit- en versielabels;
  3. publiceert die image naar de private Gitea-containerregistry;
  4. genereert een SPDX-SBOM, digestbestand, checksums en release notes.

Productie wordt daarna expliciet op de volledige versie@sha256:digest gepind. Hierdoor kan een gewone documentatie- of codepush nooit ongemerkt productie overschrijven en bestaat geen parallel mutable push-to-deploypad meer.

Vereiste runnerconfiguratie

  • De Gitea-runner accepteert label ubuntu-latest en kan jobcontainers starten.
  • REGISTRY_USER en REGISTRY_TOKEN zijn repositorysecrets met uitsluitend de noodzakelijke package-schrijfrechten.
  • Unraid gebruikt een afzonderlijk read:package-token om gepubliceerde images te pullen; dat token staat alleen in de root-Dockerconfig op de server.
  • De runnerhost heeft voldoende vrije Docker-address-pools voor tijdelijke jobnetwerken; volg daarvoor de netwerksectie in Unraid-deployment.

Publiceren en uitrollen

  1. Maak en verifieer een database- en configuratieback-up.
  2. Push de geverifieerde releasecommit naar main.
  3. Maak en push de semantische tag.
  4. Wacht tot de Gitea-releasejob groen is en verifieer de artifactchecksums.
  5. Pull op Unraid de gepubliceerde volledige digest.
  6. Zet VACATURERADAR_IMAGE op versie@sha256:digest en herstart Compose met --no-build --force-recreate.
  7. Controleer intern en publiek /health/live/ en /health/ready/, runtimeversie, containerhealth en restartteller.

PostgreSQL, Redis en Ollama blijven niet publiek bereikbaar. Bewaar de vorige digest totdat minstens één volledige schedulercyclus groen is.