feat(ci): macOS en Windows bouwen ook na een merge + repetitie bij een toolchain-bump #1781
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!1781
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/platformbuilds-post-merge"
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?
Gestapeld op #1778 (die moet eerst).
1. De rotatietoetsen toetsten de testomgeving
De Windows-job stond nog op twee rood, en de diagnose uit #1774 gaf twee keer dezelfde melding:
PathAccessException … errno = 32. Mijn twee reparaties daarvoor — de beeldcache loslaten en blokkerend herkansen — veranderden er niets aan, en dát is het bewijs waar het om draait.Binnen
testWidgetsdraait de echte gebeurtenislus niet. De asynchrone leesbeurt waarmee de voorvertoning het bestand inleest rondt daardoor nooit af, dus de test houdt de bestandshandle open zolang hij duurt. Op POSIX valt dat niet op (een geopend bestand mag je vervangen), op Windows blokkeert het élke schrijfbeurt. De app mankeert hier waarschijnlijk niets: een gebruiker drukt seconden later op Klaar, met een lopende gebeurtenislus, en dan is die leesbeurt allang afgerond.De toets laat die leesbeurt nu afronden (
tester.runAsync) vóór ze handelt. Het commentaar bij de herkansingshulp beweerde dat de houder "een ander proces" is; dat is voor dit geval weerlegd en staat er nu bij. De herkansing zelf blijft — voor de houder waarvoor ze wél iets kan doen.Wat dit betekent voor de eerdere PR's: de Windows-terugval (#1763) en de herstelkopie (#1776) blijven terecht — dat waren echte gebreken, waaronder een pad waarlangs een mislukte schrijfbeurt een bestaand bestand kon laten verdwijnen. Alleen de dúiding van de rotatietoets was mis.
2. macOS en Windows bouwen na een merge
Geen enkele poort bouwt een desktop-app. Voor Linux is dat opgelost in #1764; nu de andere twee, met hetzelfde padfilter en dezelfde afweging:
macos-build.ymldraait weer na een merge (eigen Mac-runner)..github/workflows/windows-native-check.ymlis nieuw:flutter build windows --releaseop de spiegel, want hier staat geen Windows-machine. Bouwt en gooit het resultaat weg — controle, geen levering.3. Repetitie bij een toolchain-bump
toolchain-rehearsal.yml: een PR die.tool-versionsraakt laat de volledige spiegel-CI over díe tak draaien (Linux-build, macOS-tests, Windows-suite) en faalt zichtbaar. Dat is de enige wijziging die alle drie de platformen tegelijk kan breken.Advies, geen slot — de takbescherming eist alleen
static-gate; wil je hem blokkerend, dan is dat een instelling op de forge. ZonderGH_DISPATCH_TOKEN(fork-PR) slaat hij zichzelf over in plaats van rood te worden voor iets waar de indiener niets aan kan doen.test/native_build_triggers_test.dartbewaakt de drie padfilters én de repetitie: een build die niet afgaat bewaakt niets.Toetsing
make checkgroen (exit 0).Bewaker
Overgeslagen, expliciet: CI-configuratie, een toets en documentatie. Wel kost dit runnertijd op jouw eigen machines; de afweging staat in het kopcommentaar van elke workflow.
9f0d8e183317971184b19f0d8e183317971184b1