Skip to content

ci: add selective wheel build plumbing - #2464

Merged
kkraus14 merged 1 commit into
NVIDIA:mainfrom
kkraus14:agent/selective-ci-wheel-builds
Aug 12, 2026
Merged

ci: add selective wheel build plumbing#2464
kkraus14 merged 1 commit into
NVIDIA:mainfrom
kkraus14:agent/selective-ci-wheel-builds

Conversation

@kkraus14

@kkraus14 kkraus14 commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Important

Stack dependency: PR 1 of 4. This is the foundation and has no PR dependency. #2465, #2466, and #2467 depend on it; merge this PR first.

Merge order: #2464 (this PR) -> #2465 -> #2466 -> #2467. All branches live in the kkraus14 fork and target upstream main, so later PR diffs are cumulative until their dependencies merge.

What

  • Add default-on inputs for independently building cuda-pathfinder, cuda-bindings, cuda-core, and cuda-python.
  • Add default-on inputs for producing cuda-bindings and cuda-core test fixtures.
  • Hydrate unchanged wheels from an exact baseline workflow run, then republish them under the current run's artifact names.
  • Gate the exact local-wheel constraint generation added by ci: constrain internal builds to exact local wheels #2510 so it runs only for selected consumer builds.
  • Preserve ci: constrain internal builds to exact local wheels #2510's precise CUDA-major wheel selection, pip 25.3 setup, and separation of current- and prior-major cuda-bindings wheels.
  • Preserve current Python 3.15/3.15t behavior without globally enabling prerelease resolution through PIP_PRE.

Why

The reusable build workflow needs package-level controls and artifact reuse before the top-level CI workflow can safely skip unaffected builds. The selective gates integrate with #2510's exact direct-file constraints so reused and freshly built internal wheels retain deterministic resolver precedence.

Behavior before activation

Every new input defaults to true, and this PR does not change any caller. CI therefore keeps building and preparing all packages until the orchestration PR activates selective values.

Validation

  • Full pre-commit hooks for the changed workflow, including secret scanning, YAML validation, and actionlint
  • Artifact producer/consumer and skipped-step review against current main
  • Selective-gate review against ci: constrain internal builds to exact local wheels #2510's current- and prior-CUDA exact-wheel constraint paths

Related to #299.

@kkraus14 kkraus14 added this to the cuda.bindings next milestone Jul 31, 2026
@kkraus14 kkraus14 added enhancement Any code-related improvements CI/CD CI/CD infrastructure labels Jul 31, 2026
@copy-pr-bot

copy-pr-bot Bot commented Jul 31, 2026

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.

@kkraus14

Copy link
Copy Markdown
Collaborator Author

/ok to test 4cd463f

@github-actions github-actions Bot added the cuda.core Everything related to the cuda.core module label Jul 31, 2026
@kkraus14

Copy link
Copy Markdown
Collaborator Author

/ok to test 9c7d09f

@kkraus14

Copy link
Copy Markdown
Collaborator Author

/ok to test 7658e36

@kkraus14
kkraus14 force-pushed the agent/selective-ci-wheel-builds branch from 7658e36 to a313460 Compare July 31, 2026 16:44
@kkraus14

Copy link
Copy Markdown
Collaborator Author

/ok to test a313460b29

@kkraus14

Copy link
Copy Markdown
Collaborator Author

/ok to test a313460

@github-actions

This comment has been minimized.

Copy link
Copy Markdown
Collaborator Author

/ok to test 373a954

@mdboom mdboom left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Makes sense to me as a first step of something that will be really awesome to have.

I hesitate a bit because it's at odds with the "put less logic in GHA CI config" discussion we had the other day. (It would be amazing if I could run this logic locally and say "test what needs to be tested based on my local changes"). But that's perfect is the enemy of the good -- we can always merge this approach now and refactor to something more "portable" later.

@kkraus14
kkraus14 force-pushed the agent/selective-ci-wheel-builds branch from 76f9829 to a8fe077 Compare August 12, 2026 02:17
@kkraus14
kkraus14 enabled auto-merge (squash) August 12, 2026 02:22
@kkraus14

Copy link
Copy Markdown
Collaborator Author

I hesitate a bit because it's at odds with the "put less logic in GHA CI config" discussion we had the other day. (It would be amazing if I could run this logic locally and say "test what needs to be tested based on my local changes"). But that's perfect is the enemy of the good -- we can always merge this approach now and refactor to something more "portable" later.

I agree and is something I've been thinking about. Writing a bunch of bash / powershell / etc. code doesn't feel like the right approach either. Something like moon (https://moonrepo.dev/moon) or bazel would probably be the right fit, but is a bit concerning from a maintainability perspective.

@kkraus14
kkraus14 merged commit a14557b into NVIDIA:main Aug 12, 2026
189 of 191 checks passed
@github-actions

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/CD CI/CD infrastructure cuda.core Everything related to the cuda.core module enhancement Any code-related improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants