CI: one e2e at a time across every PR #170

Merged
dev-agent merged 1 commits from e2e-one-at-a-time into main 2026-10-19 22:30:15 +00:00
Collaborator

Gitea now has two action runners, but there is one 4090. Until now, two PRs' e2e jobs could run at the same time and share the GPU.

Change: the e2e job joins a fixed concurrency group, nisse-e2e, with cancel-in-progress: false. A second PR's e2e waits for the first to finish. checks still runs on both runners in parallel, and a newer push still cancels its own PR's older run (the workflow-level group).

Caveat: a group holds one running job and one waiting job (GitHub's rule, which Gitea follows as far as I know). If three PRs reach e2e together, the third replaces the waiting one, which then shows as cancelled and needs a rerun. If that happens often, the fallback is a dedicated runner label for e2e.

Test: tests/ci/test_workflow.py checks that the group is the same for every PR and doesn't cancel.

Live check: to come once this merges, the next time two PRs reach e2e together. I'll confirm the second one waits.

🤖 Generated with Claude Code

https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk

Gitea now has two action runners, but there is one 4090. Until now, two PRs' e2e jobs could run at the same time and share the GPU. **Change:** the `e2e` job joins a fixed concurrency group, `nisse-e2e`, with `cancel-in-progress: false`. A second PR's e2e waits for the first to finish. `checks` still runs on both runners in parallel, and a newer push still cancels its own PR's older run (the workflow-level group). **Caveat:** a group holds one running job and one waiting job (GitHub's rule, which Gitea follows as far as I know). If three PRs reach e2e together, the third replaces the waiting one, which then shows as cancelled and needs a rerun. If that happens often, the fallback is a dedicated runner label for e2e. **Test:** `tests/ci/test_workflow.py` checks that the group is the same for every PR and doesn't cancel. **Live check:** to come once this merges, the next time two PRs reach e2e together. I'll confirm the second one waits. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk
dev-agent added 1 commit 2026-10-19 22:23:40 +00:00
CI: one e2e at a time across every PR
CI / checks (push) Skipped
CI / checks (pull_request) Successful in 2m21s
CI / e2e (pull_request) Successful in 3m54s
210f681ee5
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
dongar approved these changes 2026-10-19 22:24:12 +00:00
dev-agent merged commit 9150c4ac92 into main 2026-10-19 22:30:15 +00:00
dev-agent deleted branch e2e-one-at-a-time 2026-10-19 22:30:15 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dev/nisse#170