From a88ddc96e36bfc06a58458d89fec6fd1d88365cb Mon Sep 17 00:00:00 2001 From: Michael Sarahan Date: Thu, 13 Aug 2026 09:41:30 -0500 Subject: [PATCH 1/5] ci: enroll custom release build outputs --- .github/workflows/build.yaml | 23 ++++++++++++++++++++--- .github/workflows/pr.yaml | 23 ++++++++++++++++++++--- ci/build_java.sh | 10 +++++++++- ci/build_standalone_c.sh | 4 ++++ 4 files changed, 53 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 19249b2dae..c81327ec13 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -72,7 +72,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) }} @@ -87,7 +87,16 @@ 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.json + release-build-output: >- + { + "artifact_type": "custom", + "component_id": "archive:libcuvs-c", + "package_file": "libcuvs_c.release-package.json", + "artifacts": [{"path": "libcuvs_c.tar.gz"}] + } sha: ${{ inputs.sha }} rust-build-matrix: needs: cpp-build @@ -173,7 +182,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: @@ -188,6 +197,14 @@ jobs: script: "ci/build_java.sh" artifact-name: "cuvs-java-cuda${{ matrix.CUDA_VER }}" file_to_upload: "java/cuvs-java/target/" + release-build-output: >- + { + "artifact_type": "custom", + "component_id": "maven:cuvs-java", + "output_directory": "java/cuvs-java/target", + "package_file": "cuvs-java.release-package.json", + "artifacts": [{"path": "cuvs-java-*-x86_64-cuda*.jar"}] + } sha: ${{ inputs.sha }} python-build: needs: [build-details, cpp-build] diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index b4582957ee..aa32b446e2 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -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) }} @@ -534,7 +534,16 @@ 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.json + release-build-output: >- + { + "artifact_type": "custom", + "component_id": "archive:libcuvs-c", + "package_file": "libcuvs_c.release-package.json", + "artifacts": [{"path": "libcuvs_c.tar.gz"}] + } sha: ${{ inputs.sha }} rocky8-clib-tests-matrix: needs: [rocky8-clib-standalone-build, changed-files] @@ -585,7 +594,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: @@ -599,6 +608,14 @@ jobs: script: "ci/test_java.sh" artifact-name: "cuvs-java-cuda${{ matrix.CUDA_VER }}" file_to_upload: "java/cuvs-java/target/" + release-build-output: >- + { + "artifact_type": "custom", + "component_id": "maven:cuvs-java", + "output_directory": "java/cuvs-java/target", + "package_file": "cuvs-java.release-package.json", + "artifacts": [{"path": "cuvs-java-*-x86_64-cuda*.jar"}] + } rust-build-matrix: needs: [conda-cpp-build, changed-files] permissions: diff --git a/ci/build_java.sh b/ci/build_java.sh index 2e363bb452..3e322d80aa 100755 --- a/ci/build_java.sh +++ b/ci/build_java.sh @@ -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 @@ -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>.*/\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.json +fi + sccache --show-adv-stats sccache --stop-server >/dev/null 2>&1 || true diff --git a/ci/build_standalone_c.sh b/ci/build_standalone_c.sh index 94cffe1d64..d963a70edf 100755 --- a/ci/build_standalone_c.sh +++ b/ci/build_standalone_c.sh @@ -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.json From 8d2406f28e191d4eee40ca3566c90e5ed424fdb6 Mon Sep 17 00:00:00 2001 From: Michael Sarahan Date: Mon, 17 Aug 2026 21:20:32 -0500 Subject: [PATCH 2/5] Update release catalog configuration --- .github/workflows/build.yaml | 8 ++++---- .github/workflows/pr.yaml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c81327ec13..ab598519c8 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -90,10 +90,10 @@ jobs: file_to_upload: | libcuvs_c.tar.gz libcuvs_c.release-package.json - release-build-output: >- + release-catalog-config: >- { "artifact_type": "custom", - "component_id": "archive:libcuvs-c", + "release_catalog_key": "archive:libcuvs-c", "package_file": "libcuvs_c.release-package.json", "artifacts": [{"path": "libcuvs_c.tar.gz"}] } @@ -197,10 +197,10 @@ jobs: script: "ci/build_java.sh" artifact-name: "cuvs-java-cuda${{ matrix.CUDA_VER }}" file_to_upload: "java/cuvs-java/target/" - release-build-output: >- + release-catalog-config: >- { "artifact_type": "custom", - "component_id": "maven:cuvs-java", + "release_catalog_key": "maven:cuvs-java", "output_directory": "java/cuvs-java/target", "package_file": "cuvs-java.release-package.json", "artifacts": [{"path": "cuvs-java-*-x86_64-cuda*.jar"}] diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index aa32b446e2..8ef32d1066 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -537,10 +537,10 @@ jobs: file_to_upload: | libcuvs_c.tar.gz libcuvs_c.release-package.json - release-build-output: >- + release-catalog-config: >- { "artifact_type": "custom", - "component_id": "archive:libcuvs-c", + "release_catalog_key": "archive:libcuvs-c", "package_file": "libcuvs_c.release-package.json", "artifacts": [{"path": "libcuvs_c.tar.gz"}] } @@ -608,10 +608,10 @@ jobs: script: "ci/test_java.sh" artifact-name: "cuvs-java-cuda${{ matrix.CUDA_VER }}" file_to_upload: "java/cuvs-java/target/" - release-build-output: >- + release-catalog-config: >- { "artifact_type": "custom", - "component_id": "maven:cuvs-java", + "release_catalog_key": "maven:cuvs-java", "output_directory": "java/cuvs-java/target", "package_file": "cuvs-java.release-package.json", "artifacts": [{"path": "cuvs-java-*-x86_64-cuda*.jar"}] From ed4b56fd41c47f905f37aa56545ea42b8b45370b Mon Sep 17 00:00:00 2001 From: Michael Sarahan Date: Tue, 18 Aug 2026 09:41:33 -0500 Subject: [PATCH 3/5] use package identity files for release catalog --- .github/workflows/build.yaml | 6 +++--- .github/workflows/pr.yaml | 6 +++--- ci/build_java.sh | 2 +- ci/build_standalone_c.sh | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ab598519c8..47e4315331 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -89,12 +89,12 @@ jobs: artifact-name: "libcuvs_c_${{ matrix.CUDA_VER }}_${{ matrix.ARCH }}.tar.gz" file_to_upload: | libcuvs_c.tar.gz - libcuvs_c.release-package.json + libcuvs_c.release-package-identity.json release-catalog-config: >- { "artifact_type": "custom", "release_catalog_key": "archive:libcuvs-c", - "package_file": "libcuvs_c.release-package.json", + "package_identity_file": "libcuvs_c.release-package-identity.json", "artifacts": [{"path": "libcuvs_c.tar.gz"}] } sha: ${{ inputs.sha }} @@ -202,7 +202,7 @@ jobs: "artifact_type": "custom", "release_catalog_key": "maven:cuvs-java", "output_directory": "java/cuvs-java/target", - "package_file": "cuvs-java.release-package.json", + "package_identity_file": "cuvs-java.release-package-identity.json", "artifacts": [{"path": "cuvs-java-*-x86_64-cuda*.jar"}] } sha: ${{ inputs.sha }} diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 8ef32d1066..8374d989af 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -536,12 +536,12 @@ jobs: artifact-name: "libcuvs_c_${{ matrix.CUDA_VER }}_${{ matrix.ARCH }}.tar.gz" file_to_upload: | libcuvs_c.tar.gz - libcuvs_c.release-package.json + libcuvs_c.release-package-identity.json release-catalog-config: >- { "artifact_type": "custom", "release_catalog_key": "archive:libcuvs-c", - "package_file": "libcuvs_c.release-package.json", + "package_identity_file": "libcuvs_c.release-package-identity.json", "artifacts": [{"path": "libcuvs_c.tar.gz"}] } sha: ${{ inputs.sha }} @@ -613,7 +613,7 @@ jobs: "artifact_type": "custom", "release_catalog_key": "maven:cuvs-java", "output_directory": "java/cuvs-java/target", - "package_file": "cuvs-java.release-package.json", + "package_identity_file": "cuvs-java.release-package-identity.json", "artifacts": [{"path": "cuvs-java-*-x86_64-cuda*.jar"}] } rust-build-matrix: diff --git a/ci/build_java.sh b/ci/build_java.sh index 3e322d80aa..bff7db43ae 100755 --- a/ci/build_java.sh +++ b/ci/build_java.sh @@ -63,7 +63,7 @@ if [[ "${EXITCODE}" -eq 0 ]]; then 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.json + >java/cuvs-java/target/cuvs-java.release-package-identity.json fi sccache --show-adv-stats diff --git a/ci/build_standalone_c.sh b/ci/build_standalone_c.sh index d963a70edf..a67378f481 100755 --- a/ci/build_standalone_c.sh +++ b/ci/build_standalone_c.sh @@ -102,4 +102,4 @@ ls -lh libcuvs_c.tar.gz jq -n \ --arg version "${RAPIDS_PACKAGE_VERSION}" \ '{ecosystem: "archive", name: "libcuvs-c", version: $version}' \ - >libcuvs_c.release-package.json + >libcuvs_c.release-package-identity.json From 7ea854a896eaa8f04661a77b6d48ce3d50d2a3d3 Mon Sep 17 00:00:00 2001 From: Michael Sarahan Date: Tue, 18 Aug 2026 10:53:49 -0500 Subject: [PATCH 4/5] associate release identity with each artifact --- .github/workflows/build.yaml | 14 ++++++++------ .github/workflows/pr.yaml | 14 ++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 47e4315331..4b4b0e509a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -92,10 +92,11 @@ jobs: libcuvs_c.release-package-identity.json release-catalog-config: >- { - "artifact_type": "custom", "release_catalog_key": "archive:libcuvs-c", - "package_identity_file": "libcuvs_c.release-package-identity.json", - "artifacts": [{"path": "libcuvs_c.tar.gz"}] + "artifacts": [{ + "path": "libcuvs_c.tar.gz", + "package_identity_file": "libcuvs_c.release-package-identity.json" + }] } sha: ${{ inputs.sha }} rust-build-matrix: @@ -199,11 +200,12 @@ jobs: file_to_upload: "java/cuvs-java/target/" release-catalog-config: >- { - "artifact_type": "custom", "release_catalog_key": "maven:cuvs-java", "output_directory": "java/cuvs-java/target", - "package_identity_file": "cuvs-java.release-package-identity.json", - "artifacts": [{"path": "cuvs-java-*-x86_64-cuda*.jar"}] + "artifacts": [{ + "path": "cuvs-java-*-x86_64-cuda*.jar", + "package_identity_file": "cuvs-java.release-package-identity.json" + }] } sha: ${{ inputs.sha }} python-build: diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 8374d989af..e3cf891101 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -539,10 +539,11 @@ jobs: libcuvs_c.release-package-identity.json release-catalog-config: >- { - "artifact_type": "custom", "release_catalog_key": "archive:libcuvs-c", - "package_identity_file": "libcuvs_c.release-package-identity.json", - "artifacts": [{"path": "libcuvs_c.tar.gz"}] + "artifacts": [{ + "path": "libcuvs_c.tar.gz", + "package_identity_file": "libcuvs_c.release-package-identity.json" + }] } sha: ${{ inputs.sha }} rocky8-clib-tests-matrix: @@ -610,11 +611,12 @@ jobs: file_to_upload: "java/cuvs-java/target/" release-catalog-config: >- { - "artifact_type": "custom", "release_catalog_key": "maven:cuvs-java", "output_directory": "java/cuvs-java/target", - "package_identity_file": "cuvs-java.release-package-identity.json", - "artifacts": [{"path": "cuvs-java-*-x86_64-cuda*.jar"}] + "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] From 90e246f3662876106442590768f0bf52ef942d0e Mon Sep 17 00:00:00 2001 From: Michael Sarahan Date: Tue, 18 Aug 2026 11:16:23 -0500 Subject: [PATCH 5/5] rename release catalog artifact directory --- .github/workflows/build.yaml | 2 +- .github/workflows/pr.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 4b4b0e509a..374ec3a35a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -201,7 +201,7 @@ jobs: release-catalog-config: >- { "release_catalog_key": "maven:cuvs-java", - "output_directory": "java/cuvs-java/target", + "artifact_directory": "java/cuvs-java/target", "artifacts": [{ "path": "cuvs-java-*-x86_64-cuda*.jar", "package_identity_file": "cuvs-java.release-package-identity.json" diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index e3cf891101..9fb528171b 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -612,7 +612,7 @@ jobs: release-catalog-config: >- { "release_catalog_key": "maven:cuvs-java", - "output_directory": "java/cuvs-java/target", + "artifact_directory": "java/cuvs-java/target", "artifacts": [{ "path": "cuvs-java-*-x86_64-cuda*.jar", "package_identity_file": "cuvs-java.release-package-identity.json"