ci: draai de statische poort per PR (static-gate.yml) — vervolg op #1118 #1121

Merged
brenno merged 2 commits from ci/per-pr-static-gate-1118 into main 2026-08-02 11:54:44 +00:00
Owner

Wat & waarom

Vervolg op #1118: de statische poorten (conventies, methodelengte, hardgecodeerde
tekst, dode code, projectiegrens, toolchain) draaiden alleen op een v*-tag, dus
tussen releases dreef main stil rood zonder dat een PR-poort het ving. Deze PR
zet die snelle helft van de poort op elke PR neer.

Wat het toevoegt

  • make check-static$(STATIC_GATES), dezelfde lijst die check draait
    (geen tweede waarheid), zonder de test-suite en zonder de dekkingsmeting.
  • .forgejo/workflows/static-gate.yml — draait make check-static op elke
    PR, in een ubuntu:24.04-container op de server (van de Mac af, net als
    scans.yml), met de gepinde officiële Flutter uit .tool-versions,
    sha256-geverifieerd (net als linux-gate.yml), zodat check-toolchain
    onverkort meedraait. concurrency breekt een verouderde run af.
  • Docs — CHECKS.md (nieuwe make check-static- en workflow-subsectie; intro,
    voetnoot en CI-intro bijgewerkt) en CONTRIBUTING.md.

Wat het bewust niet doet

De dekkingsvloer, de per-bestandsvloer en de volledige suite blijven in
make check op de machine van de committer, vóór main — die kosten op deze
container tientallen minuten (#796), precies de reden dat de poort ooit naar een
tag verhuisde.

Verificatie

make check-static groen; pinned_versions_manifest_test en
release_package_layout_test groen (de workflow heeft geen *_VERSION-pin).
Deze PR draait de nieuwe workflow op zichzelf — de static-gate-run hieronder is
de integratietest.

Naar aanleiding van #1118.

## Wat & waarom Vervolg op #1118: de statische poorten (conventies, methodelengte, hardgecodeerde tekst, dode code, projectiegrens, toolchain) draaiden alleen op een `v*`-tag, dus tussen releases dreef `main` stil rood zonder dat een PR-poort het ving. Deze PR zet die snelle helft van de poort op elke PR neer. ## Wat het toevoegt - **`make check-static`** — `$(STATIC_GATES)`, dezelfde lijst die `check` draait (geen tweede waarheid), zonder de test-suite en zonder de dekkingsmeting. - **`.forgejo/workflows/static-gate.yml`** — draait `make check-static` op elke PR, in een `ubuntu:24.04`-container op de server (van de Mac af, net als `scans.yml`), met de gepinde officiële Flutter uit `.tool-versions`, sha256-geverifieerd (net als `linux-gate.yml`), zodat `check-toolchain` onverkort meedraait. `concurrency` breekt een verouderde run af. - **Docs** — CHECKS.md (nieuwe `make check-static`- en workflow-subsectie; intro, voetnoot en CI-intro bijgewerkt) en CONTRIBUTING.md. ## Wat het bewust niet doet De dekkingsvloer, de per-bestandsvloer en de volledige suite blijven in `make check` op de machine van de committer, vóór main — die kosten op deze container tientallen minuten (#796), precies de reden dat de poort ooit naar een tag verhuisde. ## Verificatie `make check-static` groen; `pinned_versions_manifest_test` en `release_package_layout_test` groen (de workflow heeft geen `*_VERSION`-pin). Deze PR draait de nieuwe workflow op zichzelf — de `static-gate`-run hieronder is de integratietest. Naar aanleiding van #1118.
De statische poorten (conventies, methodelengte, hardgecodeerde tekst, dode code,
projectiegrens, toolchain) draaiden alleen op een v*-tag, dus tussen releases
dreef main stil rood — precies wat #1118 blootlegde. Deze workflow zet
`make check-static` (= $(STATIC_GATES), dezelfde lijst als `check`, geen tweede
waarheid) op elke PR neer: een Linux-container op de server met de gepinde
officiële Flutter — net als linux-gate.yml, en van de Mac af net als scans.yml.
De dekkingsvloer, de per-bestandsvloer en de volledige suite blijven bewust in
`make check` op de machine van de committer, vóór main.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs: beschrijf de per-PR-statische poort (CHECKS.md, CONTRIBUTING.md)
All checks were successful
scans / scans (pull_request) Successful in 3m40s
static-gate / static-gate (pull_request) Successful in 23m32s
2fb391dd22
CHECKS.md krijgt een `make check-static`-subsectie en een static-gate.yml-
workflowsubsectie, en de intro, de tabelvoetnoot en de CI-intro zijn bijgewerkt
zodat "wat een forge vóór een merge draait" weer klopt. CONTRIBUTING.md: de
"niets draait per PR behalve scans"-alinea klopte niet meer — er draaien nu twee
dingen per PR, en de dekkingsvloeren blijven lokaal.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
brenno merged commit 5eb55f15ce into main 2026-08-02 11:54:44 +00:00
brenno deleted branch ci/per-pr-static-gate-1118 2026-08-02 11:54:44 +00:00
Sign in to join this conversation.
No description provided.