Fix immutable release bootstrap for 0.3.17
release / verify-publish (push) Successful in 6m13s
deploy / deploy (push) Canceled after 0s

This commit is contained in:
Jens
2026-08-12 13:35:02 +02:00
parent b5045cf487
commit 3cfb2260cc
7 changed files with 48 additions and 7 deletions
+3 -1
View File
@@ -10,8 +10,10 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v6 - name: Install pinned uv
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
with: with:
version: "0.11.12"
python-version: "3.13" python-version: "3.13"
- name: Install verification browser - name: Install verification browser
run: | run: |
+8
View File
@@ -2,6 +2,14 @@
Alle betekenisvolle wijzigingen worden hier bijgehouden. Het project volgt voorlopig een pre-1.0 semantische versieaanpak. Alle betekenisvolle wijzigingen worden hier bijgehouden. Het project volgt voorlopig een pre-1.0 semantische versieaanpak.
## 0.3.17 - 2026-08-12
### Hersteld
- De Gitea-releasebootstrap gebruikt een immutable `setup-uv`-commit en een exacte
uv-versie; downloads lopen via de Astral-mirror en zijn niet langer afhankelijk
van de gelimiteerde GitHub Releases-API op het gedeelde runner-IP.
## 0.3.16 - 2026-08-12 ## 0.3.16 - 2026-08-12
### Hersteld ### Hersteld
+4 -4
View File
@@ -8,11 +8,11 @@
VacatureRadar is een persoonlijke vacature-assistent voor België. De applicatie volgt toegestane werkgeversbronnen, ATS-paginas, feeds en vacaturemails, verwijdert dubbels en irrelevante resultaten en rangschikt de overblijvende kansen tegen jouw zoekprofiel. Jij behoudt altijd de controle: VacatureRadar helpt zoeken en opvolgen, maar solliciteert nooit automatisch. VacatureRadar is een persoonlijke vacature-assistent voor België. De applicatie volgt toegestane werkgeversbronnen, ATS-paginas, feeds en vacaturemails, verwijdert dubbels en irrelevante resultaten en rangschikt de overblijvende kansen tegen jouw zoekprofiel. Jij behoudt altijd de controle: VacatureRadar helpt zoeken en opvolgen, maar solliciteert nooit automatisch.
**Actuele release: 0.3.16.** De volledige P0/P1-releasebasis en de publieke **Actuele release: 0.3.17.** De volledige P0/P1-releasebasis en de publieke
demo-hardening zijn afgerond: 327 tests zijn groen, Microsoft 365 verwerkt platformmails via demo-hardening zijn afgerond: 327 tests zijn groen, Microsoft 365 verwerkt platformmails via
app-only OAuth/XOAUTH2 en de productie-installatie draait gezond op de lokaal app-only OAuth/XOAUTH2. Release 0.3.17 herstelt bovendien de reproduceerbare
gebouwde 0.3.16-image. De laatst volledig bewezen immutable private-registryrelease private-registrypublicatie zonder afhankelijkheid van de GitHub Releases-API.
is 0.3.15; het controleerbare acceptatiebewijs staat in Het controleerbare acceptatiebewijs staat in
[Finale acceptance](docs/audit/FINAL_ACCEPTANCE.md). [Finale acceptance](docs/audit/FINAL_ACCEPTANCE.md).
![Dagoverzicht van VacatureRadar in licht thema](docs/screenshots/readme/dashboard-light.png) ![Dagoverzicht van VacatureRadar in licht thema](docs/screenshots/readme/dashboard-light.png)
+1 -1
View File
@@ -139,7 +139,7 @@ CSRF_TRUSTED_ORIGINS = merge_unique(
) )
TIME_ZONE = os.getenv("DJANGO_TIME_ZONE", "Europe/Brussels") TIME_ZONE = os.getenv("DJANGO_TIME_ZONE", "Europe/Brussels")
VACATURERADAR_OWNER_NAME = os.getenv("VACATURERADAR_OWNER_NAME", "Jens").strip()[:40] or "Jens" VACATURERADAR_OWNER_NAME = os.getenv("VACATURERADAR_OWNER_NAME", "Jens").strip()[:40] or "Jens"
VACATURERADAR_VERSION = os.getenv("VACATURERADAR_VERSION", "0.3.16").strip() or "0.3.16" VACATURERADAR_VERSION = os.getenv("VACATURERADAR_VERSION", "0.3.17").strip() or "0.3.17"
LANGUAGE_CODE = "nl-be" LANGUAGE_CODE = "nl-be"
USE_I18N = True USE_I18N = True
USE_TZ = True USE_TZ = True
+1 -1
View File
@@ -9,7 +9,7 @@ DJANGO_ALLOWED_HOSTS=vacatureradar.example.be,127.0.0.1,localhost
DJANGO_CSRF_TRUSTED_ORIGINS=https://vacatureradar.example.be DJANGO_CSRF_TRUSTED_ORIGINS=https://vacatureradar.example.be
DJANGO_TIME_ZONE=Europe/Brussels DJANGO_TIME_ZONE=Europe/Brussels
VACATURERADAR_OWNER_NAME=Jens VACATURERADAR_OWNER_NAME=Jens
VACATURERADAR_VERSION=0.3.16 VACATURERADAR_VERSION=0.3.17
POSTGRES_DB=vacatureradar POSTGRES_DB=vacatureradar
POSTGRES_USER=vacatureradar POSTGRES_USER=vacatureradar
+23
View File
@@ -2417,3 +2417,26 @@ tasks:
opvolging en 9 fictieve mailboxkoppelingen; EMAIL-bronnen en demo-mailboxen zijn uit de verkeerde schedulers opvolging en 9 fictieve mailboxkoppelingen; EMAIL-bronnen en demo-mailboxen zijn uit de verkeerde schedulers
en activityfeeds uitgesloten, statuscopy en loginplaceholder zijn gecorrigeerd. Gerichte 51 tests en volledige en activityfeeds uitgesloten, statuscopy en loginplaceholder zijn gecorrigeerd. Gerichte 51 tests en volledige
gate met 327 tests groen, 84,04% dekking. gate met 327 tests groen, 84,04% dekking.
- id: VR-230
title: Herstel de immutable Gitea-releasepublicatie
status: ready
priority: P0
requirement_ids:
- NFR-009
depends_on:
- VR-229
summary: Verwijder de externe GitHub-API-rate-limit uit de releasebootstrap en publiceer de actuele productiebuild
opnieuw als aantoonbaar immutable private-registryimage.
acceptance_criteria:
- De uv-bootstrap is op een immutable actioncommit en een exacte uv-versie gepind.
- De releaseworkflow gebruikt voor uv-downloads geen GitHub Releases-API die op een gedeeld runner-IP kan limiteren.
- Gitea Actions publiceert een private registryimage met digest, SBOM, checksums en release notes.
- Unraid is op de gepubliceerde digest gepind en live health/readiness slagen.
verification:
- uv run pytest tests/unit/test_deployment_configuration.py
- ./scripts/codex_verify.sh
- Gitea Actions releasebewijs en live Unraid health/readiness
primary_paths:
- .gitea/workflows/release.yml
- tests/unit/test_deployment_configuration.py
- docs/audit/FINAL_ACCEPTANCE.md
@@ -128,3 +128,11 @@ def test_deploy_uses_selected_environment_file_for_compose() -> None:
assert 'export VACATURERADAR_ENV_FILE="$env_file"' in deploy_script assert 'export VACATURERADAR_ENV_FILE="$env_file"' in deploy_script
assert 'docker compose --env-file "$env_file" -f "$compose_file" up -d --build' in deploy_script assert 'docker compose --env-file "$env_file" -f "$compose_file" up -d --build' in deploy_script
assert "waarde uit ${env_file}" in deploy_script assert "waarde uit ${env_file}" in deploy_script
def test_release_uv_install_is_immutable_and_does_not_require_github_api() -> None:
workflow = (ROOT / ".gitea" / "workflows" / "release.yml").read_text(encoding="utf-8")
assert "astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0" in workflow
assert 'version: "0.11.12"' in workflow
assert "astral-sh/setup-uv@v6" not in workflow