fix(ci): dartcv4-cache-key op versie alleen, niet hele pubspec.lock (#1748) #1749

Merged
brenno merged 1 commit from fix/dartcv-cache-key-1746 into main 2026-08-23 12:02:13 +00:00
Owner

Probleem

Commit 13c8a40ce verwijderde de restore-keys: dartcv-linux- fallback om een stale CMake-cache-fout op te lossen. De trade-off: elke pubspec.lock-wijziging geeft een volledig schone dartcv4-build (~1 GB OpenCV), wat static-gate aanzienlijk vertraagt bij elke dep-bump.

Oplossing

De cache-key was dartcv-linux-${{ hashFiles('pubspec.lock') }} — hangt aan de héle pubspec.lock, terwijl de OpenCV-build alleen afhangt van de dartcv4-versie.

Fix: extractiestap die de dartcv4-versie uit pubspec.lock haalt, key op die versie alleen, zonder restore-keys:

  • Niet-dartcv4 dep-bump → key ongewijzigd → cache hit (snel)
  • dartcv4-bump → nieuwe key, geen restore → schone build (correct, behoudt de 13c8a40ce fix)

Aangepaste bestanden

  • .forgejo/workflows/static-gate.yml
  • .forgejo/workflows/linux-gate.yml
  • .forgejo/workflows/release.yml (web + linux jobs)
  • test/dartcv_cache_key_test.dart (nieuwe regressietest)

Test plan

  • make check-static groen
  • make check-registrations groen
  • make check-secrets schoon (gitleaks + trufflehog)
  • make sast schoon (semgrep, 0 findings)
  • flutter test test/dartcv_cache_key_test.dart — 3 tests groen
  • CI static-gate groen

Generated with Devin

## Probleem Commit `13c8a40ce` verwijderde de `restore-keys: dartcv-linux-` fallback om een stale CMake-cache-fout op te lossen. De trade-off: **elke `pubspec.lock`-wijziging geeft een volledig schone dartcv4-build** (~1 GB OpenCV), wat static-gate aanzienlijk vertraagt bij elke dep-bump. ## Oplossing De cache-key was `dartcv-linux-${{ hashFiles('pubspec.lock') }}` — hangt aan de héle `pubspec.lock`, terwijl de OpenCV-build alleen afhangt van de **dartcv4-versie**. Fix: extractiestap die de dartcv4-versie uit `pubspec.lock` haalt, key op die versie alleen, **zonder `restore-keys`**: - Niet-dartcv4 dep-bump → key ongewijzigd → **cache hit** (snel) - dartcv4-bump → nieuwe key, geen restore → **schone build** (correct, behoudt de `13c8a40ce` fix) ## Aangepaste bestanden - `.forgejo/workflows/static-gate.yml` - `.forgejo/workflows/linux-gate.yml` - `.forgejo/workflows/release.yml` (web + linux jobs) - `test/dartcv_cache_key_test.dart` (nieuwe regressietest) ## Test plan - [x] `make check-static` groen - [x] `make check-registrations` groen - [x] `make check-secrets` schoon (gitleaks + trufflehog) - [x] `make sast` schoon (semgrep, 0 findings) - [x] `flutter test test/dartcv_cache_key_test.dart` — 3 tests groen - [ ] CI static-gate groen Generated with [Devin](https://devin.ai)
fix(ci): dartcv4-cache-key op versie alleen, niet hele pubspec.lock (#1748)
Some checks failed
static-gate / static-gate (pull_request) Failing after 3m5s
scans / scans (pull_request) Successful in 3m59s
6dc2f77e4c
De cache-key `dartcv-linux-${{ hashFiles('pubspec.lock') }}` invalidéerde
bij élke dep-bump, waardoor de hook OpenCV vanaf nul bouwde (~1 GB) — de
duurste stap van static-gate. Na 13c8a40ce (verwijderde restore-keys wegens
stale CMake-cache) viel dit extra op: elke pubspec.lock-wijziging = koude
cache.

Fix: extractiestap die de dartcv4-versie uit pubspec.lock haalt, key op die
versie alleen. Zonder restore-keys:
- niet-dartcv4 bump → key ongewijzigd → cache hit (snel)
- dartcv4 bump → nieuwe key, geen restore → schone build (correct)

Aangepast: static-gate.yml, linux-gate.yml, release.yml (web + linux jobs).

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
brenno force-pushed fix/dartcv-cache-key-1746 from 6dc2f77e4c
Some checks failed
static-gate / static-gate (pull_request) Failing after 3m5s
scans / scans (pull_request) Successful in 3m59s
to 6403ba900f
All checks were successful
scans / scans (pull_request) Successful in 4m50s
static-gate / static-gate (pull_request) Successful in 40m22s
2026-08-23 11:09:27 +00:00
Compare
brenno merged commit 1d206bc3b0 into main 2026-08-23 12:02:13 +00:00
Sign in to join this conversation.
No description provided.