ci: does a skipped job report a commit status? #1

Open
dcharlot wants to merge 1 commit from dcharlot/skip-status-probe into main AGit

2026-10-09

David Charlot
ci: does a skipped job report a commit status?
Some checks failed
skip-status-probe / probe · skipped by its own literal false (expect SKIP) (push) Has been skipped
skip-status-probe / probe · skipped by its own literal false (expect SKIP) (pull_request) Has been skipped
skip-status-probe / probe · gate emitting false (push) Has been cancelled
skip-status-probe / probe · gate emitting true (push) Has been cancelled
skip-status-probe / probe · dependent of a false gate (expect SKIP) (push) Has been cancelled
skip-status-probe / probe · dependent of a true gate (expect RUN) (push) Has been cancelled
skip-status-probe / probe · skipped matrix leg alpha (expect SKIP) (push) Has been cancelled
skip-status-probe / probe · skipped matrix leg beta (expect SKIP) (push) Has been cancelled
skip-status-probe / probe · skipped matrix leg gamma (expect SKIP) (push) Has been cancelled
ci-smoke / smoke (push) Has been cancelled
skip-status-probe / probe · gate emitting false (pull_request) Successful in 0s
skip-status-probe / probe · dependent of a false gate (expect SKIP) (pull_request) Has been skipped
skip-status-probe / probe · skipped matrix leg alpha (expect SKIP) (pull_request) Has been skipped
skip-status-probe / probe · skipped matrix leg beta (expect SKIP) (pull_request) Has been skipped
skip-status-probe / probe · skipped matrix leg gamma (expect SKIP) (pull_request) Has been skipped
skip-status-probe / probe · gate emitting true (pull_request) Successful in 0s
skip-status-probe / probe · dependent of a true gate (expect RUN) (pull_request) Successful in 1s
open-standards gates expensive path-filtered workflows behind a `relevant`
job, so dependent jobs skip when a change does not touch that standard. If a
skipped job reports no status, those contexts stay pending forever and a
branch rule requiring them can never be satisfied.

Four jobs, paired. gate-false -> dep-of-false should skip; gate-true ->
dep-of-true should run. The second pair is the control: if needs-outputs were
simply broken here and always read empty, every dependent would skip and the
result would look the same. dep-of-true running is what makes the skip mean
"the output said false". dep-literal isolates a self-skip with no needs edge,
and dep-matrix mirrors wai-pack's three-leg matrix to show whether each leg
reports its own context.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-10-09 03:39:02 -04:00