release: build-jobs gebruiken kaal ubuntu:24.04 i.p.v. het voorgebakken CI-image #1170

Closed
opened 2026-08-03 15:12:26 +00:00 by brenno · 2 comments
Owner

De docker-buildjobs in .forgejo/workflows/release.yml (web, linux) draaien op kaal ubuntu:24.04 met uses: ./.forgejo/actions/flutter, dus élke tag herinstalleert de hele toolchain + haalt Flutter vers op + compileert de dartcv OpenCV-laag from scratch. Bij v0.2.0 duurde 'Linux bouwen' ~1u10 en de hele release wacht daarop (macOS/Windows/web waren in ~25 min klaar). De per-PR Linux/static-gates draaien sinds #1141 wél op pawprint.vigilis.online/librekat/ocideck-ci:flutter-<pin> (toolchain + Flutter + Linux-precache ingebakken).

Twee delen:

  1. Nu opgepakt (verbeter-PR): de release web+linux-jobs delen dezelfde actions/cache-sleutels als de gates (pub-linux-<lock>, dartcv-linux-<lock>), zodat de dure dartcv-OpenCV-compile bij een tag wórdt teruggezet uit de warme gate-cache i.p.v. opnieuw gebouwd. Veilig, geen image-wissel.
  2. Nog te doen (dit issue): de release-docker-jobs op het voorgebakken image baseren. LET OP: het CI-image mist liblzma-dev en libsecret-1-dev die make build-linux nodig heeft (de gates draaien tests, geen desktop-build) — die moeten óf in het image (.forgejo/ci-image/Dockerfile) óf als kleine apt-stap erbij. En release.yml draait alleen op een tag, dus dit moet met een oefentag (vX.Y.Z-rcN) gevalideerd worden vóór de eerstvolgende echte release — kan niet op een gewone PR.
De docker-buildjobs in `.forgejo/workflows/release.yml` (web, linux) draaien op kaal `ubuntu:24.04` met `uses: ./.forgejo/actions/flutter`, dus élke tag herinstalleert de hele toolchain + haalt Flutter vers op + compileert de dartcv OpenCV-laag from scratch. Bij v0.2.0 duurde 'Linux bouwen' ~1u10 en de hele release wacht daarop (macOS/Windows/web waren in ~25 min klaar). De per-PR Linux/static-gates draaien sinds #1141 wél op `pawprint.vigilis.online/librekat/ocideck-ci:flutter-<pin>` (toolchain + Flutter + Linux-precache ingebakken). Twee delen: 1. **Nu opgepakt (verbeter-PR):** de release web+linux-jobs delen dezelfde `actions/cache`-sleutels als de gates (`pub-linux-<lock>`, `dartcv-linux-<lock>`), zodat de dure dartcv-OpenCV-compile bij een tag wórdt teruggezet uit de warme gate-cache i.p.v. opnieuw gebouwd. Veilig, geen image-wissel. 2. **Nog te doen (dit issue):** de release-docker-jobs op het voorgebakken image baseren. LET OP: het CI-image mist `liblzma-dev` en `libsecret-1-dev` die `make build-linux` nodig heeft (de gates draaien tests, geen desktop-build) — die moeten óf in het image (`.forgejo/ci-image/Dockerfile`) óf als kleine apt-stap erbij. En **release.yml draait alleen op een tag**, dus dit moet met een oefentag (`vX.Y.Z-rcN`) gevalideerd worden vóór de eerstvolgende echte release — kan niet op een gewone PR.
Author
Owner

Opgepakt op tak ci/release-prebaked-image-1170. De release web+linux-jobs gaan naar het voorgebakken ocideck-ci:flutter-3.44.8-image (toolchain+Flutter ingebakken). De linux-job installeert nog liblzma-dev+libsecret-1-dev bij (die mist het test-image maar heeft make build-linux nodig). Valideren met een oefentag (v*-rcN, prerelease, deploy overgeslagen); daarna opruimen.

Opgepakt op tak `ci/release-prebaked-image-1170`. De release web+linux-jobs gaan naar het voorgebakken `ocideck-ci:flutter-3.44.8`-image (toolchain+Flutter ingebakken). De linux-job installeert nog `liblzma-dev`+`libsecret-1-dev` bij (die mist het test-image maar heeft `make build-linux` nodig). Valideren met een oefentag (`v*-rcN`, prerelease, deploy overgeslagen); daarna opruimen.
Author
Owner

Opgelost en met een oefentag gevalideerd.

Wijziging (PR #1183, op main): de release web+linux-buildjobs draaien nu op pawprint.vigilis.online/librekat/ocideck-ci:flutter-3.44.8 i.p.v. kaal ubuntu:24.04 — toolchain + Flutter + Linux-precache ingebakken, de per-run apt-install en de Flutter-download vervallen. De linux-job installeert nog liblzma-dev+libsecret-1-dev bij (die linkt alleen de desktop-build; niet in het test-image). windows-ophalen/publiceren/deploy-web blijven op ubuntu:24.04.

Validatie met oefentag v0.2.1-rc1 (prerelease, deploy overgeslagen), op de merge-commit met #1170:

  • Web bouwen → success op het voorgebakken image.
  • Linux bouwen → success op het voorgebakken image, mét de bijgeïnstalleerde libs.
  • Wall-clock van tag-push tot beide groen: ~20 min tegenover de ~1u10 die de Linux-job alléén kostte bij v0.2.0. De gedeelde dartcv-cache (#1172) + het ingebakken image doen het werk.

Oefentag + de (geannuleerde) chain + de spiegel-Windows-release opgeruimd: geen v0.2.1-rc1-tag of -release meer op forge of spiegel. De echte eerstvolgende release draait hier nu vanzelf op.

Sluit dit issue.

Opgelost en met een oefentag gevalideerd. **Wijziging (PR #1183, op main):** de release **web+linux-buildjobs** draaien nu op `pawprint.vigilis.online/librekat/ocideck-ci:flutter-3.44.8` i.p.v. kaal ubuntu:24.04 — toolchain + Flutter + Linux-precache ingebakken, de per-run apt-install en de Flutter-download vervallen. De linux-job installeert nog `liblzma-dev`+`libsecret-1-dev` bij (die linkt alleen de desktop-build; niet in het test-image). windows-ophalen/publiceren/deploy-web blijven op ubuntu:24.04. **Validatie met oefentag `v0.2.1-rc1`** (prerelease, deploy overgeslagen), op de merge-commit met #1170: - **Web bouwen → success** op het voorgebakken image. - **Linux bouwen → success** op het voorgebakken image, mét de bijgeïnstalleerde libs. - Wall-clock van tag-push tot beide groen: ~20 min tegenover de ~1u10 die de Linux-job alléén kostte bij v0.2.0. De gedeelde dartcv-cache (#1172) + het ingebakken image doen het werk. Oefentag + de (geannuleerde) chain + de spiegel-Windows-release opgeruimd: geen `v0.2.1-rc1`-tag of -release meer op forge of spiegel. De echte eerstvolgende release draait hier nu vanzelf op. Sluit dit issue.
brenno 2026-08-03 20:08:59 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
LibreKAT/Ocideck#1170
No description provided.