40 lines
1.9 KiB
Markdown
40 lines
1.9 KiB
Markdown
# 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](UNRAID_DEPLOYMENT.md#docker-netwerkcapaciteit).
|
|
|
|
## 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.
|