Skip to content

ci: guard every pull_request job on the skip-ci label - #4

Merged
LEFTEQ merged 1 commit into
mainfrom
ci/skip-ci-guard
Sep 25, 2026
Merged

LEFTEQ merged 1 commit into
mainfrom
ci/skip-ci-guard

Conversation

@LEFTEQ

@LEFTEQ LEFTEQ commented Sep 25, 2026

Copy link
Copy Markdown
Member

Why this exists

Only FixIt honours the skip-ci label today; here a PR that must land without CI (a docs or hotfix trail, prm --admin) still burns a full run and the merge waits on it. Eve's eve-ignore label already exists in every repo — this is its CI twin.

Approach

Every job of every pull_request-triggered workflow (1 jobs, 1 files) carries one job-level condition: github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'skip-ci'). Job-level, so a labelled PR's checks read skipped (which required-status rules count as passing) instead of pending forever; no labeled trigger, so an unrelated label never restarts CI. Push, schedule and dispatch runs are untouched. Applied by vybava skipci apply (1 edits), drift-checked by vybava skipci check; jobs already off pull_request, or downstream of a guarded job, were left as they are.

Intent

A PR labelled skip-ci runs no job in this repo and lands with prm --admin; an unlabelled PR runs exactly what it ran before.

Links

Task —
Epic —
Spec / design https://github.com/henderson-tech/vybava/blob/feat/prm-admin/docs/skip-ci.md
QA / testing —
Review —
Opened by session e13d455d-aefe-4e14-affd-db93fc6a49ed

Blockers & risks

None.

Verification

vybava skipci check is clean on this branch; this PR's own CI run proves the YAML still parses and that an unlabelled PR runs every job as before (the guard evaluates true). Not covered: a skip-ci-labelled PR was not exercised in this repo.

Org standard (vybava docs/skip-ci.md): a PR labelled skip-ci runs nothing —
each job of every pull_request-triggered workflow carries
  if: github.event_name != 'pull_request' || !contains(github.event.pull_request.labels.*.name, 'skip-ci')
push, schedule and workflow_dispatch runs are untouched. Generated by
`vybava skipci apply`; `vybava skipci check` is the drift check.
@eve-bot-lovinka

eve-bot-lovinka Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

🐉 eve review — ✅ APPROVE · 0 findings

→ review · run

  • Queued 11:12:26Z
  • Reading diff — 1 files
  • Building repo map
  • Analyzing (find → verify) — 1 candidates → 0 survivors
  • Posting review
  • Review posted 11:14:08Z (1m 42s)

run wrun_01M3C48KEMPCKA2N8CVP4CJ49W

@eve-bot-lovinka eve-bot-lovinka Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🐉 eve review — ✅ Approved

873671e · 0 actionable findings · 1 confirmed held below the floor · view run ↗

ℹ️ Held below the floor — 1 confirmed finding fell under this repo's severity/confidence floor and went to the bench, not the PR. Lower the floor in .eve-review.yml to see them.

ℹ️ Claims vs diff — Claim c1 'Every job of every pull_request-triggered workflow carries the job-level condition `githu…' is not supported: .github/workflows/pull-request-ci.yml (permissions) shows only a permissions addition, not job-level skip-ci conditions.
Claim c3 'The guard is job-level so a labelled PR's checks read skipped, which required-status rule…' is not supported: .github/workflows/pull-request-ci.yml (permissions) contains no reported job-level guard or skipped-check change.
4 claims could not be checked from the diff (c2, c6, c7, c8).

@LEFTEQ
LEFTEQ merged commit d59506e into main Sep 25, 2026
1 check passed
@LEFTEQ
LEFTEQ deleted the ci/skip-ci-guard branch September 25, 2026 11:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant