ci: serialize go-unit/ui-test/integration to fix the runner workspace race #86

Closed
developer wants to merge 1 commits from feature/ci-serialize-runner-jobs into development
3 changed files with 28 additions and 7 deletions
Showing only changes of commit 046857177e - Show all commits
+11
View File
@@ -30,6 +30,17 @@ on:
- '.gitea/workflows/go-unit.yaml'
- '!**/*.md'
# Serialised with ui-test and integration via a shared concurrency group.
# All three run on the host runner, which shares a single workspace, so
# running them at the same time races on workspace teardown: the
# root-owned ui/frontend/build that ui-test's production build leaves
# behind cannot be removed by a sibling job's (non-root) cleanup, which
# then spuriously fails that job. One global group runs them one at a
# time; cancel-in-progress: false queues runs instead of cancelling them.
concurrency:
group: galaxy-host-runner
cancel-in-progress: false
jobs:
test:
runs-on: ubuntu-latest
+8
View File
@@ -37,6 +37,14 @@ on:
- '.gitea/workflows/integration.yaml'
- '!**/*.md'
# Shared concurrency group with go-unit and ui-test: the host runner uses
# one workspace, so these jobs must not run concurrently or they race on
# workspace teardown (see go-unit.yaml for the full rationale). Runs are
# queued, not cancelled.
concurrency:
group: galaxy-host-runner
cancel-in-progress: false
jobs:
integration:
runs-on: ubuntu-latest
+9 -7
View File
@@ -18,14 +18,16 @@ on:
# Playwright launches its own `pnpm dev` on :5173, and in host-mode
# the runner shares the host's port namespace with every other job,
# so two parallel ui-test runs collide on EADDRINUSE. Serialise via a
# singleton concurrency group with queueing — new runs wait their
# turn instead of cancelling the in-progress one. cancel-in-progress
# is explicitly false because Gitea has shown spurious self-cancel
# behaviour under cancel-in-progress: true even when no other run
# shares the group.
# so two parallel ui-test runs collide on EADDRINUSE. Serialise via the
# shared `galaxy-host-runner` concurrency group (also used by go-unit and
# integration) with queueing — new runs wait their turn instead of
# cancelling the in-progress one. The shared group additionally avoids the
# host-workspace teardown race those jobs hit (see go-unit.yaml). New runs
# wait their turn; cancel-in-progress is explicitly false because Gitea has
# shown spurious self-cancel behaviour under cancel-in-progress: true even
# when no other run shares the group.
concurrency:
group: ui-test-singleton
group: galaxy-host-runner
cancel-in-progress: false
jobs: