Skip to content

ci: replace single gating check with wait-for-status-check [no-ci] - #1008

Merged
leofang merged 1 commit into
NVIDIA:mainfrom
cpcloud:avoid-status-checks-with-skip-ci
Oct 1, 2025
Merged

ci: replace single gating check with wait-for-status-check [no-ci]#1008
leofang merged 1 commit into
NVIDIA:mainfrom
cpcloud:avoid-status-checks-with-skip-ci

Conversation

@cpcloud

@cpcloudcpcloud commented Sep 22, 2025

Copy link
Copy Markdown
Contributor

This PR changes our usage of status-check.yml to allow skipping CI when the head commit of PR contains the text
[skip ci].

Our current usage of the wait-for-check action doesn't sense to me.

We have as inputs all the checks that we care about build, test*, docs,
and we only invoke that action when those succeed.

That seems to be no different than running exit 0 against ubuntu-latest and
thus defeats the purpose of using wait-for-checks which is to allow
finer-grained control over what is actually a required check.

In our case, there are cases such as #999 where it doesn't make sense to do
a full build test docs run, but developers are left waiting on an admin to
merge their PR.

Proposal for merging this PR:

  1. Make the previously not required checks actually required in the GitHub UI.
    I don't have permissions to do that, so someone other than me needs to do
    that.
  2. Merge this PR.
  3. Try out a couple no-op PRs to verify that everything is working.

@copy-pr-bot

Copy link
Copy Markdown
Contributor

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

Comment thread.github/workflows/ci.yml Outdated
@cpcloud
cpcloudforce-pushed the avoid-status-checks-with-skip-ci branch from b455cfe to 7a583d3CompareSeptember 23, 2025 20:12
Comment thread.github/workflows/status-check.yml
@cpcloud
cpcloudforce-pushed the avoid-status-checks-with-skip-ci branch from 7a583d3 to 6b6844aCompareSeptember 30, 2025 16:36
Comment thread.github/workflows/ci.yml Outdated
Comment thread.github/workflows/ci.yml
@leofang

Copy link
Copy Markdown
Member

/ok to test 6563550

@github-actions

This comment has been minimized.

Comment thread.github/workflows/ci.yml
@cpcloud
cpcloudforce-pushed the avoid-status-checks-with-skip-ci branch from 6563550 to d1ec467CompareOctober 1, 2025 14:09
@cpcloud

Copy link
Copy Markdown
ContributorAuthor

/ok to test

@cpcloud
cpcloud marked this pull request as ready for review October 1, 2025 14:23
@copy-pr-bot

Copy link
Copy Markdown
Contributor

Auto-sync is disabled for ready for review pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@cpcloud

Copy link
Copy Markdown
ContributorAuthor

/ok to test

@leofang

Copy link
Copy Markdown
Member

Check job still completes instead of spinning: https://github.com/NVIDIA/cuda-python/actions/runs/18165463144/job/51706593048?pr=1008

@cpcloud

Copy link
Copy Markdown
ContributorAuthor

@leofang Can you paste the names of the checks here from the UI? I can't see them because I don't have access.

@leofang

Copy link
Copy Markdown
Member

Once we are sure the check job completes the last, we can either adjust the repo setting and then merge, or admin-merge then adjust the repo setting. But we are not there yet. The repo setting is irrelevant of the failure of waiting for dependent jobs here. It is just a workflow bug that we should fix first.

@cpcloud

Copy link
Copy Markdown
ContributorAuthor

/ok to test

1 similar comment
@cpcloud

Copy link
Copy Markdown
ContributorAuthor

/ok to test

@cpcloud

Copy link
Copy Markdown
ContributorAuthor

I'm going to try one more alternative to avoid the action entirely.

@cpcloud

Copy link
Copy Markdown
ContributorAuthor

I really don't like having to add an arbitrary delay to get this to work.

@leofang

Copy link
Copy Markdown
Member

Yeah adding a random delay is flakey. It could proceed to complete when build jobs finish but the test jobs are still being spawned. Not a fan either.

@cpcloud

Copy link
Copy Markdown
ContributorAuthor

/ok to test

3 similar comments
@cpcloud

Copy link
Copy Markdown
ContributorAuthor

/ok to test

@cpcloud

Copy link
Copy Markdown
ContributorAuthor

/ok to test

@cpcloud

Copy link
Copy Markdown
ContributorAuthor

/ok to test

@cpcloudcpcloud changed the title ci: replace single gating check with wait-for-status-checkci: replace single gating check with wait-for-status-check [skip ci]Oct 1, 2025
@cpcloud

Copy link
Copy Markdown
ContributorAuthor

/ok to test

@cpcloud

Copy link
Copy Markdown
ContributorAuthor

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks

The new status check job should be considered passing, because it's skipped, according to that documentation.

I'm try to taking advantage of the fact that skip == success.

@cpcloudcpcloud changed the title ci: replace single gating check with wait-for-status-check [skip ci]ci: replace single gating check with wait-for-status-check [no-ci]Oct 1, 2025
@cpcloud

Copy link
Copy Markdown
ContributorAuthor

/ok to test

@cpcloud
cpcloudforce-pushed the avoid-status-checks-with-skip-ci branch from 8203214 to 1685f32CompareOctober 1, 2025 15:58
@cpcloud

Copy link
Copy Markdown
ContributorAuthor

/ok to test

@cpcloud

Copy link
Copy Markdown
ContributorAuthor

@leofang It looks like the push check is somehow different from the check that's waiting. Are push checks separate in the checks UI?

@leofang

Copy link
Copy Markdown
Member

I am checking. This is odd because as discussed earlier once a CI job is run, it should appear as a registered job in the repo setting's dropdown menu, but for some reason I had to type the full name explicitly without anything popping out for me to choose.

@leofang

Copy link
Copy Markdown
Member

This is what's in the ruleset that Keith set up. I added the last row manually. Nothing is "push"-specific 🤔
截圖 2025-10-01 下午12 04 57

@leofang

Copy link
Copy Markdown
Member

@cpcloud I think I fixed it. It's just "Check job status" (without "CI"), see the last row:
截圖 2025-10-01 下午12 11 17
You can see your new job becomes required now. But, it does not seem to be allowing a green merge button? Is it because I still haven't removed the old check?

@cpcloud

Copy link
Copy Markdown
ContributorAuthor

Is it because I still haven't removed the old check?

Yep, that has to be removed before merge is allowed.

@leofang

Copy link
Copy Markdown
Member

Let me check quickly. btw we'll need to backport this PR to 12.9.x. Keith applied the same ruleset to all branches.

@leofang
leofang merged commit 598874c into NVIDIA:mainOct 1, 2025
13 checks passed
@cpcloud
cpcloud deleted the avoid-status-checks-with-skip-ci branch October 1, 2025 16:17
@leofang

Copy link
Copy Markdown
Member

It works now! To avoid race condition I am merging immediately.

@leofangleofang added CI/CD CI/CD infrastructure P1 Medium priority - Should do labels Oct 1, 2025
@leofangleofang added this to the cuda.core beta 7 milestone Oct 1, 2025
@cpcloud

Copy link
Copy Markdown
ContributorAuthor

Thanks for the review, much appreciated!

@leofang

Copy link
Copy Markdown
Member

Thanks for working this out Phillip!

@github-actions

Copy link
Copy Markdown
Doc Preview CI
Preview removed because the pull request was closed or merged.

cpcloud added a commit that referenced this pull request Oct 1, 2025
…#1056)
* ci: replace single gating check with vanilla skipping (#1008)
* ci: remove docs
* ci: add back matrix filter
@cpcloudcpcloud mentioned this pull request Oct 8, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/CDCI/CD infrastructureP1Medium priority - Should do

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@cpcloud@leofang@kkraus14