Skip to content

ci: adopt CCCL check_result aggregator for Check job status (fixes #900) - #912

Merged
leofang merged 1 commit into
NVIDIA:mainfrom
leofang:leofang/issue-900-port-cuda-python-2208
Jul 5, 2026
Merged

leofang merged 1 commit into
NVIDIA:mainfrom
leofang:leofang/issue-900-port-cuda-python-2208

Conversation

@leofang

@leofang leofang commented Jul 4, 2026

Copy link
Copy Markdown
Member

Summary

Ports the gating-check fix from NVIDIA/cuda-python#2210 to this repo. Closes #900.

Root cause and design discussion live in NVIDIA/cuda-python#2208 — not repeating here. Bit us in this repo on 2026-07-03 when 5f530b96 auto-merged with a silent Windows failure and had to be reverted in 441882b2.

Change

One file, .github/workflows/ci.yaml, checks: job only:

  • Replace the cancelled || failure predicate with CCCL's check_result pattern: per-dep expected="success", [no-ci] short-circuit at the top.
  • Add should-skip to needs: and check its result explicitly — a crash in the gating job can no longer masquerade as a green CI run.
  • No [doc-only] machinery — this repo doesn't have that PR mode. If added later, mirror ci: adopt CCCL check_result aggregator and add doc-only PR mode numba-cuda-mlir#142.

Verification

Local simulation of the new aggregator across 6 scenarios (normal-green, build-windows-fail-cascade, build-linux-64-fail-cascade, [no-ci], pre-commit-fail, should-skip-itself-fails) — all behave as expected.

Reference

…IDIA#900)

Ports the gating-check fix from NVIDIA/cuda-python#2210 (root-cause
analysis: NVIDIA/cuda-python#2208) to this repo. Same bug bit us in
this repo on 2026-07-03 when a dependabot actions-monthly bump
auto-merged with a silent Windows failure and had to be reverted.

The previous `cancelled || failure` predicate on the aggregator's
`test-*` / `build-docs` / `coverage-report` deps missed the case where
an upstream `build-*` job fails and the downstream job's `result` is
set to `'skipped'` via default needs-failure propagation. `'skipped'`
is not `'cancelled'` or `'failure'`, so the gate exited 0 and merge was
allowed.

Adopt CCCL's `check_result` pattern: require an explicit
`expected="success"` per dependency; anything else (including `skipped`
from a failed upstream) fails the gate. `[no-ci]` short-circuits at
the top. `should-skip` is now itself in `needs:` and checked, so a
crash in the gating job can't masquerade as green.

Scope note: this repo has no `[doc-only]` PR mode wired up, so no
dynamic `expected` handling is needed. If `[doc-only]` is added later,
mirror the pattern from NVIDIA/numba-cuda-mlir#142.

Verified the aggregator script with a local simulation across 6
scenarios: normal-green, build-windows-fail-cascade, build-linux-64
fail-cascade, [no-ci], pre-commit-fail, should-skip-itself-fails. All
behave correctly.

Reference: CCCL gate,
https://github.com/NVIDIA/cccl/blob/8c0e6cb1b6412d7bd0070f9ac3f55fa80231961a/.github/workflows/ci-workflow-pull-request.yml#L463-L526

Refs: NVIDIA#900, NVIDIA/cuda-python#2208, NVIDIA/cuda-python#2210, NVIDIA/numba-cuda-mlir#142
@copy-pr-bot

copy-pr-bot Bot commented Jul 4, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@leofang

leofang commented Jul 4, 2026

Copy link
Copy Markdown
Member Author

/ok to test 3e87d3e

@leofang
leofang marked this pull request as ready for review July 5, 2026 16:43
@leofang
leofang merged commit f3ae03f into NVIDIA:main Jul 5, 2026
386 of 405 checks passed
@leofang
leofang deleted the leofang/issue-900-port-cuda-python-2208 branch July 5, 2026 20:44
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.

CI: Check job status aggregator passes when build jobs fail (port of NVIDIA/cuda-python#2208)

1 participant