CI: one e2e at a time across every PR
Gitea now has two runners but there is one 4090. The e2e job joins one concurrency group without cancel-in-progress, so a second PR's e2e waits for the first. checks still run in parallel. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk
This commit is contained in:
1 parent
03023b18b0
commit
210f681ee5
2 files changed
+23
No files matched your search
@@ -108,6 +108,13 @@ jobs:
|
||||
|| contains(github.event.pull_request.labels.*.name, 'e2e:full'))
|
||||
needs: checks
|
||||
runs-on: ubuntu-latest
|
||||
# One e2e at a time across every PR and branch: there are two runners
|
||||
# but one 4090. A second waits for the first instead of sharing the GPU.
|
||||
# A group holds one running and one waiting job, so a third PR's e2e
|
||||
# replaces the waiting one, which shows as cancelled: rerun it.
|
||||
concurrency:
|
||||
group: nisse-e2e
|
||||
cancel-in-progress: false
|
||||
timeout-minutes: 90
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
"""The CI workflow's settings that matter beyond a single run."""
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
import yaml
|
||||
|
||||
CI = Path(__file__).parent.parent.parent / ".gitea" / "workflows" / "ci.yml"
|
||||
|
||||
|
||||
def test_only_one_e2e_runs_at_a_time() -> None:
|
||||
"""Two runners, one 4090: e2e runs share one group across every PR,
|
||||
and a run waits for the one before rather than cancelling it."""
|
||||
e2e = yaml.safe_load(CI.read_text())["jobs"]["e2e"]
|
||||
group = e2e["concurrency"]["group"]
|
||||
assert "${{" not in group # the same group for every PR and branch
|
||||
assert e2e["concurrency"]["cancel-in-progress"] is False
|
||||
Reference in new issue
Block a user