ci: serialize go-unit/ui-test/integration on a shared concurrency group
Tests · Go / test (push) Has been cancelled
Tests · Go / test (pull_request) Has been cancelled
Tests · Integration / integration (pull_request) Has been cancelled
Tests · UI / test (push) Waiting to run
Tests · UI / test (pull_request) Successful in 3m11s

These three jobs run on the host runner, which shares a single workspace.
Run concurrently, they race on workspace teardown: ui-test's production
build leaves a root-owned ui/frontend/build that a sibling job's (non-root)
cleanup cannot remove, which then spuriously fails that job — observed
repeatedly on go-unit when it overlapped a ui-test build. Put all three in
one global concurrency group (galaxy-host-runner, cancel-in-progress:
false) so they run one at a time and never collide. CI becomes more serial
but the false failures stop.

This also subsumes ui-test's former ui-test-singleton group, which guarded
the Playwright :5173 port; the shared group preserves that guarantee.
This commit is contained in:
Ilia Denisov
2026-05-31 18:11:34 +02:00
parent 5d2f2bfc26
commit 046857177e
3 changed files with 28 additions and 7 deletions
+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