Skip to content
55 changes: 47 additions & 8 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,17 @@ on:
required: true
type: string
build_type:
description: "build_type: one of [branch, nightly, pull-request]"
description: "build_type: one of [branch, nightly, pull-request, release-candidate]"
type: string
default: nightly
candidate_train_sha256:
description: "Canonical SHA-256 of the release train; required for release-candidate builds."
type: string
default: ""
candidate_release_tag:
description: "Final source tag created locally for a release-candidate build."
type: string
default: "v26.10.00"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
Expand All @@ -46,7 +54,7 @@ jobs:
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@main
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@codex/release-build-output-manifests
with:
build_type: ${{ inputs.build_type || 'branch' }}
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
Expand All @@ -55,6 +63,8 @@ jobs:
node_type: cpu16
script: ci/build_cpp.sh
sha: ${{ inputs.sha }}
candidate-train-sha256: ${{ inputs.candidate_train_sha256 }}
release-candidate-tag: ${{ inputs.candidate_release_tag }}

rocky8-clib-standalone-build-matrix:
permissions:
Expand All @@ -72,7 +82,7 @@ jobs:
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@codex/release-build-output-manifests
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.rocky8-clib-standalone-build-matrix.outputs.matrix) }}
Expand All @@ -87,8 +97,20 @@ jobs:
requires_license_builder: true
script: "ci/build_standalone_c.sh"
artifact-name: "libcuvs_c_${{ matrix.CUDA_VER }}_${{ matrix.ARCH }}.tar.gz"
file_to_upload: "libcuvs_c.tar.gz"
file_to_upload: |
libcuvs_c.tar.gz
libcuvs_c.release-package-identity.json
release-catalog-config: >-
{
"release_catalog_key": "archive:libcuvs-c",
"artifacts": [{
"path": "libcuvs_c.tar.gz",
"package_identity_file": "libcuvs_c.release-package-identity.json"
}]
}
sha: ${{ inputs.sha }}
candidate-train-sha256: ${{ inputs.candidate_train_sha256 }}
release-candidate-tag: ${{ inputs.candidate_release_tag }}
rust-build-matrix:
needs: cpp-build
permissions:
Expand Down Expand Up @@ -173,7 +195,7 @@ jobs:
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@codex/release-build-output-manifests
# Artifacts are not published from these jobs, so it's safe to run for multiple CUDA versions.
# If these jobs start producing artifacts, the names will have to differentiate between CUDA versions.
strategy:
Expand All @@ -188,7 +210,18 @@ jobs:
script: "ci/build_java.sh"
artifact-name: "cuvs-java-cuda${{ matrix.CUDA_VER }}"
file_to_upload: "java/cuvs-java/target/"
release-catalog-config: >-
{
"release_catalog_key": "maven:cuvs-java",
"artifact_directory": "java/cuvs-java/target",
"artifacts": [{
"path": "cuvs-java-*-x86_64-cuda*.jar",
"package_identity_file": "cuvs-java.release-package-identity.json"
}]
}
sha: ${{ inputs.sha }}
candidate-train-sha256: ${{ inputs.candidate_train_sha256 }}
release-candidate-tag: ${{ inputs.candidate_release_tag }}
python-build:
needs: [build-details, cpp-build]
permissions:
Expand All @@ -198,14 +231,16 @@ jobs:
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@codex/release-build-output-manifests
with:
build_type: ${{ inputs.build_type || 'branch' }}
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
branch: ${{ inputs.branch }}
date: ${{ inputs.date }}
script: ci/build_python.sh
sha: ${{ inputs.sha }}
candidate-train-sha256: ${{ inputs.candidate_train_sha256 }}
release-candidate-tag: ${{ inputs.candidate_release_tag }}
# Build a conda package for each CUDA x ARCH x minimum supported Python version
matrix_filter: group_by({CUDA_VER, ARCH}) | map(min_by(.PY_VER | split(".") | map(tonumber)))
upload-conda:
Expand Down Expand Up @@ -261,7 +296,7 @@ jobs:
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@codex/release-build-output-manifests
with:
build_type: ${{ inputs.build_type || 'branch' }}
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
Expand All @@ -274,6 +309,8 @@ jobs:
matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber)))
package-name: libcuvs
package-type: cpp
candidate-train-sha256: ${{ inputs.candidate_train_sha256 }}
release-candidate-tag: ${{ inputs.candidate_release_tag }}
wheel-publish-libcuvs:
needs: wheel-build-libcuvs
permissions:
Expand Down Expand Up @@ -303,7 +340,7 @@ jobs:
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@codex/release-build-output-manifests
with:
build_type: ${{ inputs.build_type || 'branch' }}
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
Expand All @@ -314,6 +351,8 @@ jobs:
script: ci/build_wheel_cuvs.sh
package-name: cuvs
package-type: python
candidate-train-sha256: ${{ inputs.candidate_train_sha256 }}
release-candidate-tag: ${{ inputs.candidate_release_tag }}
# Build a wheel for each CUDA x ARCH x minimum supported Python version
matrix_filter: group_by({CUDA_VER, ARCH}) | map(min_by(.PY_VER | split(".") | map(tonumber)))
wheel-publish-cuvs:
Expand Down
33 changes: 26 additions & 7 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -440,7 +440,7 @@ jobs:
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@main
uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@codex/release-build-output-manifests
with:
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
Expand Down Expand Up @@ -482,7 +482,7 @@ jobs:
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main
uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@codex/release-build-output-manifests
with:
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
Expand Down Expand Up @@ -520,7 +520,7 @@ jobs:
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@codex/release-build-output-manifests
strategy:
fail-fast: false
matrix: ${{ fromJSON(needs.rocky8-clib-standalone-build-matrix.outputs.matrix) }}
Expand All @@ -534,7 +534,17 @@ jobs:
requires_license_builder: true
script: "ci/build_standalone_c.sh --build-tests"
artifact-name: "libcuvs_c_${{ matrix.CUDA_VER }}_${{ matrix.ARCH }}.tar.gz"
file_to_upload: "libcuvs_c.tar.gz"
file_to_upload: |
libcuvs_c.tar.gz
libcuvs_c.release-package-identity.json
release-catalog-config: >-
{
"release_catalog_key": "archive:libcuvs-c",
"artifacts": [{
"path": "libcuvs_c.tar.gz",
"package_identity_file": "libcuvs_c.release-package-identity.json"
}]
}
sha: ${{ inputs.sha }}
rocky8-clib-tests-matrix:
needs: [rocky8-clib-standalone-build, changed-files]
Expand Down Expand Up @@ -585,7 +595,7 @@ jobs:
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@main
uses: rapidsai/shared-workflows/.github/workflows/custom-job.yaml@codex/release-build-output-manifests
# Artifacts are not published from these jobs, so it's safe to run for multiple CUDA versions.
# If these jobs start producing artifacts, the names will have to differentiate between CUDA versions.
strategy:
Expand All @@ -599,6 +609,15 @@ jobs:
script: "ci/test_java.sh"
artifact-name: "cuvs-java-cuda${{ matrix.CUDA_VER }}"
file_to_upload: "java/cuvs-java/target/"
release-catalog-config: >-
{
"release_catalog_key": "maven:cuvs-java",
"artifact_directory": "java/cuvs-java/target",
"artifacts": [{
"path": "cuvs-java-*-x86_64-cuda*.jar",
"package_identity_file": "cuvs-java.release-package-identity.json"
}]
}
rust-build-matrix:
needs: [conda-cpp-build, changed-files]
permissions:
Expand Down Expand Up @@ -685,7 +704,7 @@ jobs:
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@codex/release-build-output-manifests
with:
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
Expand All @@ -704,7 +723,7 @@ jobs:
packages: read
pull-requests: read
secrets: inherit # zizmor: ignore[secrets-inherit]
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main
uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@codex/release-build-output-manifests
with:
build_type: pull-request
build-datetime: ${{ needs.build-details.outputs.build-datetime }}
Expand Down
10 changes: 9 additions & 1 deletion ci/build_java.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION.
# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

set -euo pipefail
Expand Down Expand Up @@ -58,6 +58,14 @@ export RAPIDS_CUDA_MAJOR

bash ./build.sh java "${EXTRA_BUILD_ARGS[@]}"

if [[ "${EXITCODE}" -eq 0 ]]; then
JAVA_PACKAGE_VERSION="$(sed -n 's/.*<version>\([^<]*\)<\/version>.*/\1/p' java/cuvs-java/pom.xml | head -n 1)"
jq -n \
--arg version "${JAVA_PACKAGE_VERSION}" \
'{ecosystem: "maven", name: "com.nvidia.cuvs:cuvs-java", version: $version}' \
>java/cuvs-java/target/cuvs-java.release-package-identity.json
fi

sccache --show-adv-stats
sccache --stop-server >/dev/null 2>&1 || true

Expand Down
4 changes: 4 additions & 0 deletions ci/build_standalone_c.sh
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,7 @@ license-builder . --output-json c/build/install/licenses.json --output-txt c/bui
rapids-logger "Begin c tarball creation"
tar czf libcuvs_c.tar.gz -C c/build/install/ .
ls -lh libcuvs_c.tar.gz
jq -n \
--arg version "${RAPIDS_PACKAGE_VERSION}" \
'{ecosystem: "archive", name: "libcuvs-c", version: $version}' \
>libcuvs_c.release-package-identity.json
6 changes: 5 additions & 1 deletion ci/build_wheel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,12 @@ source rapids-init-pip
export SCCACHE_S3_PREPROCESSOR_CACHE_KEY_PREFIX="${package_name}/${RAPIDS_CONDA_ARCH}/cuda${RAPIDS_CUDA_VERSION%%.*}/wheel/preprocessor-cache"
export SCCACHE_S3_USE_PREPROCESSOR_CACHE_MODE=true

RAPIDS_VERSION_SUFFIX=".post${RAPIDS_DATETIME_STRING}" \
if [[ "${RAPIDS_RELEASE_CANDIDATE:-false}" == "true" ]]; then
rapids-generate-version > ./VERSION
else
RAPIDS_VERSION_SUFFIX=".post${RAPIDS_DATETIME_STRING}" \
rapids-generate-version > ./VERSION
fi

cd "${package_dir}"

Expand Down
Loading