ci: serialize go-unit/ui-test/integration to fix the runner workspace race #86
Reference in New Issue
Block a user
Delete Branch "feature/ci-serialize-runner-jobs"
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?
What & why
Fixes the recurring
go-unitfalse-failure. Thego-unit,ui-test, andintegrationjobs run on the host runner, which shares a single workspace.When they run concurrently they race on workspace teardown: ui-test's
production build (
pnpm test:pwa) leaves a root-ownedui/frontend/buildthat a sibling job's non-root cleanup cannot remove, and
act_runnerthenmarks that job failed (
unlinkat … permission denied) even though its testspassed. This repeatedly hit
go-unitwhen it overlapped a ui-test build.Fix
Put all three jobs in one global concurrency group (
galaxy-host-runner,cancel-in-progress: false) so only one runs at a time on the runner — theycan no longer collide on the shared workspace. This subsumes ui-test's former
ui-test-singletongroup (which guarded the Playwright:5173port); theshared group preserves that guarantee. Runs queue rather than cancel.
Trade-off: CI is more serial — these three queue instead of running in
parallel, so a full run is slower in wall-clock. Accepted to make the runs
reliable.
Note
Deferred follow-up to the rules PR (#85). The earlier #84 cleanup (ui-test
removing its build artifacts at job end) only covered the sequential case;
this serialization closes the concurrent race.
Pull request closed