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.