ci: voorgebakken Linux CI-basisimage + publiceer-route (fase 1/2) #1141
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!1141
Loading…
Reference in a new issue
No description provided.
Delete branch "ci/prebaked-image"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Antwoord op "iedere keer wordt de hele Linux-omgeving vanaf scratch opgebouwd". Fase 1 van 2: introduceert een voorgebakken CI-basisimage; raakt de live-gates nog niet (die volgen in een vervolg-PR zodra het image gepubliceerd + gevalideerd is).
Waarom
linux-gate,static-gateenscansdraaien elk in een kaalubuntu:24.04en bouwen élke run dezelfde omgeving op: apt-build-tools installeren, de officiële Flutter ophalen+uitpakken, desktop-artefacten precachen. Identiek werk, identiek resultaat — één keer bakken i.p.v. herhalen.Wat
.forgejo/ci-image/Dockerfile— draagt de traag-veranderende toolchain: OS + de vaste apt-.deb-lijst + de gepinde Flutter (official stable, sha256 getoetst bij de build tegen het release-manifest) +flutter precache --linux. Bewust niet erin: pub-pakketten en de dartcv OpenCV-build — die volgenpubspec.locken blijven opactions/cache..forgejo/workflows/ci-image.yml— bouwt+pusht naarpawprint.vigilis.online/librekat/ocideck-ci:flutter-<pin>. Op afroep én automatisch bij een wijziging aan de Dockerfile of.tool-versions. Slaat zichzelf groen over alsCI_IMAGE_TOKENontbreekt, zodat déze PR na de merge geen rodemainoplevert vóór de inrichting.make ci-image-publish— betrouwbare handmatige route (buildx, cross-build naarlinux/amd64) vanaf een machine met docker/colima.Waarborgen (bewaker-relevant, expliciet)
check-toolchaindraait onverkort in de poort op de ingebakken Flutter (kanaalstable, officiële herkomst, gelijk aan de pin). Een image met iets anders valt om op dezelfde poort die ooit het cirruslabs-image afkeurde.ubuntu:24.04(Docker Hub) en Flutter (Google) — beide haalden de huidige workflows al. Het image leeft op de eigen Forgejo-registry; zelfde vertrouwensgrens als de runner en de bestaandeactions/cache(zie de kop vanlinux-gate.yml). Geen pubspec-dep → geen SBOM-impact. De app-belofte ("only HTTP client dependency ishttp", "never phones home") raakt dit niet (CI, niet de app)..tool-versions→ build-arg → image-tag, met auto-rebuild bij pin-bump.Eenmalige inrichting (jij)
CI_IMAGE_TOKEN= een Forgejo-token metwrite:package— of draaimake ci-image-publish.Daarna de vervolg-PR die
linux-gate/static-gate/scansomzet naarcontainer: image: …/ocideck-ci:flutter-<pin>en de installatiestappen sloopt — dát levert de snelheidswinst.Poortstand
Op verse
origin/maingebouwd. Geen Dart-wijziging → static-gate/scans onaangetast; YAML gevalideerd (ruby), Makefile-doel dry-run correct. Kernwaardenbewaker-review loopt.make ci-image-publishals betrouwbare handmatige publiceer-route b19aa0791353cdcb7f14df09cdd03d