ci: breid de dartcv4+apt-caches uit naar de per-PR-poorten (static-gate, scans) #1140
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!1140
Loading…
Reference in a new issue
No description provided.
Delete branch "ci/per-pr-gate-cache"
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?
Vervolg op #1139. Breidt de per-PR-poortcaches uit naar de twee poorten die bij élke PR draaien — de echte flessenhals vóór een merge, want de trage Linux-runner is er maar één en
main-poorten (linux-gate) hoefden er al niet meer op te wachten sinds hun caches.Wat
static-gate.yml(de zwaarste per-PR-poort).make check-staticroeptdart run tool/…aan, en élke zo'n aanroep laat de dartcv4-hook op een verse checkout ~1 GB OpenCV compileren — ~20-30 min op deze runner. Twee caches erbij, met dezelfde sleutels als linux-gate zodat één cache beide poorten bedient:/var/cache/apt/archives,apt-linux-2404-buildtools-v1) — met node-eerst-splitsing +Keep-Downloaded-Packages;.dart_tool/hooks_runner+build/native_assets,dartcv-linux-${{ hashFiles('pubspec.lock') }}).scans.yml(secret/SAST). Alleen de apt-cache, met een eigen sleutel (apt-linux-2404-scans-v1) omdat de pakketlijst lichter is (geen cmake/gtk). Geen dartcv4-cache — scans bouwt geen Flutter/OpenCV.Bewust niet (transparant)
De scanner-binaries (gitleaks/trufflehog) en de semgrep-venv worden in
scans.ymlnog niet gecachet. De venv-pip is de grootste resterende scans-kost, maar het cachen ervan raakt de gepinde-download-en-verificatie-stap van een beveiligingsworkflow — dat is een aparte, iets delicatere PR. Genoteerd in de commit i.p.v. stil gelaten.Waarborgen
Beide cachestappen op
continue-on-error: valt de cache-API weg, dan draait de stap gewoon en blijft de poort de poort. De caches vervangen geen controle — de dartcv4-hook is inhoud-geadresseerd op zijn inputs en herbouwt bij afwijking; de apt-.deb's zijn een vaste lijst op een vast image. Vertrouwensgrens ongewijzigd: de cache wordt door onze eigen jobs op onze eigen runner geschreven (zie de kop vanlinux-gate.yml).Raakt geen formaat/opslag/dependency/uitgaand-verkeer/belofte — puur CI-versnelling, dus geen bewaker-ronde nodig. YAML gevalideerd (ruby).
De statische poort draait bij élke PR en is de echte flessenhals vóór een merge: `make check-static` roept `dart run tool/…` aan, en élke zo'n aanroep laat de native-assets-hook van dartcv4 op een verse checkout ~1 GB OpenCV compileren — veruit de duurste stap, ~20-30 min op de trage Linux-runner. Neem daarom dezelfde twee caches over die linux-gate al heeft, met dezelfde sleutels zodat één cache beide poorten bedient: - de apt-build-tools (`/var/cache/apt/archives`, sleutel `apt-linux-2404-buildtools-v1`), met node-eerst-splitsing zodat actions/cache kan draaien vóór de zware toolchain en `Keep-Downloaded-Packages` de .deb's bewaart; - de dartcv4 OpenCV-build (`.dart_tool/hooks_runner` + `build/native_assets`, sleutel `dartcv-linux-${{ hashFiles('pubspec.lock') }}`). Beide op `continue-on-error`: valt de cache-API weg, dan draait de stap gewoon en blijft de poort de poort. De cache vervangt geen controle — de hook is inhoud-geadresseerd op zijn inputs en herbouwt bij afwijking. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>