Skip to content

Latest commit

 

History

History
 
 

ci

README.md

Continuous Integration

Checkout History

Use the default shallow checkout for jobs that only read files or test prebuilt wheels. Source builds need complete commit ancestry and release tags so setuptools-scm can derive each package's version.

For those jobs, use fetch-depth: 0 with filter: blob:none. The checkout action fetches complete ancestry for all branches and tags, while the blob filter skips historical file contents. This avoids downloading the large historical gh-pages contents discussed in issue #2197. Git retrieves file contents as needed when checking out the requested commit.

CI change detection uses this full-history checkout for PR mirrors, so the actual PR base branch is available when computing its merge base. Non-PR runs need only a shallow checkout. PR-preview cleanup checks out its script shallowly and fetches gh-pages separately when needed. Pathfinder release preparation fetches its exact tag without requesting every other tag.

Git documents blob filtering in its clone reference. The pinned checkout action's README documents fetch-depth: 0 for fetching all history, branches, and tags.

Temporary Pixi Lockfile Maintenance Pause

Pixi lockfile freshness enforcement and automated refreshes are temporarily suspended because of Pixi #7215 and #7000. Repeated lockfile operations can change the committed solution without converging, so a general refresh is not a reliable repair.

The CI: pixi lockfile freshness check workflow still runs on every PR with its existing pixi lock --check (all workspaces) check name. It succeeds with a warning annotation and job summary explicitly reporting the suspension; success does not mean freshness passed. The refresh workflow has no schedule. Manual dispatch emits the same notice without solving dependencies, rewriting lockfiles, pushing a branch, or creating a PR.

Manifest/lock consistency is not automatically enforced during this pause. Necessary dependency changes require manual review and validation of the affected manifests and lockfiles. Real source builds and tests continue using PIXI_FROZEN=true, including nested pixi run calls, to build the checkout's source packages against the committed dependency solution. The pinned Pixi version and committed lockfiles are unchanged.

Re-enable maintenance only after a released Pixi passes both upstream issue reproducers and repeated byte-stable update/lock/check cycles across all six workspaces: the repository root, cuda_pathfinder, cuda_bindings, cuda_core, benchmarks/cuda_bindings, and benchmarks/cuda_core. Verify both pixi update --no-install and pixi lock, followed by repeated pixi lock --check commands, converge to unchanged lockfile bytes. Then restore strict freshness checks, scheduled refreshes, and PIXI_LOCKED=true in source-build CI.

Repository Customizations

The workflows in this repository use the CI_CUSTOMIZATIONS_* namespace for GitHub Actions configuration variables that opt an alternative synchronized repository into repository-specific CI behavior. This keeps the workflow logic shared without hard-coding the names of private repositories into the public source tree.

These variables are non-secret strings configured under Settings > Secrets and variables > Actions > Variables. An unset variable, or any value other than the literal string true, leaves the customization disabled. Do not store credentials or other secret values in these variables.

Variable Default Purpose
CI_CUSTOMIZATIONS_SECURITY_SUITE_ENABLED Disabled Enables the NVIDIA Security Suite after its runner, Actions variables, and OIDC/Vault authorization have been provisioned for the repository.

The canonical NVIDIA/cuda-python repository does not need this variable because its standard workflow behavior is enabled directly. Before enabling a customization elsewhere, document the repository-specific prerequisites and verification procedure in that repository's own documentation.