mudler / mudler/vllm.cpp

main CI never completes: cancel-in-progress is true for push, so every run is cancelled by the next push (0 successes in 100 runs)

Open Beginner friendly
#2,491 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
423
Forks
53
Avg merge
20h 26m
Merged PRs (30d)
310

Description

Row: -

main has had no completed CI run in the last 100 runs, spanning 2026-08-31T08:19Z to
2026-09-01T14:22Z. Measured with gh run list --branch main --workflow ci.yml --limit 100:

cancelled  25/30 most recent (83%)
failure     3/30
running     2/30
success     0 of 100 scanned

Cause, at .github/workflows/ci.yml:

concurrency:
  group: ci-${{ github.event_name }}-${{ ... || github.ref }}-${{ github.repository }}
  cancel-in-progress: ${{ github.event_name == 'pull_request' || github.event_name == 'push' }}

cancel-in-progress is true for push, and every push to main produces the same group
key because github.ref is refs/heads/main every time. Under concurrent operators main
takes a push roughly every 30 minutes while a full CI run takes about 2.5 hours, so each run
is cancelled by the next push before it can finish. The steady state is that main never
gets a verdict.

The file's own comment contradicts the expression. Directly above the block it says
cancel-in-progress "is already false for every non-PR event", and records that #274 added
github.event_name to the key on 2026-08-11 after two consecutive pushes had their
documentation-checkpoint and commit-protocol-tag cancelled, leaving commits cdec2d10
and 0435746d unvalidated. That is the same failure, and it is back - the current
expression names push explicitly.

Why this matters beyond tidiness:

  • A cancelled run reads as a failure, not as "not measured", so every PR opened off main
    inherits an unverifiable base.
  • Diff-scoped gates that base on "the last green commit" have no green to base on.
  • Six merges landed on main today whose only verdicts are local full builds; CI has said
    nothing about any of them, and cannot.

Suggested fix: make cancel-in-progress false for push (keep it true for
pull_request, where superseding a run is correct), so pushes to main queue instead of
cancelling. That trades runner time for actually having a baseline.

Owed: the change, plus a decision on whether to backfill a verdict for the current main
so diff-scoped gates have a base again.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the concurrency block in .github/workflows/ci.yml and confirm the current behavior with gh run list --branch main --workflow ci.yml --limit 100. Update the cancellation policy so pushes to main can complete while pull-request runs remain cancellable. Done means main produces a completed CI verdict; separately, decide whether to backfill the current main baseline.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions
Domain
ci-cd
Issue type
Bug
Difficulty
1/5
Estimated time
Under an hour
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
84/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.