diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c209d0c0ad..4e101f06e0 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -43,7 +43,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' }} branch: ${{ inputs.branch }} @@ -51,6 +51,8 @@ jobs: node_type: cpu16 script: ci/build_cpp.sh sha: ${{ inputs.sha }} + release-build-output: true + release-unit: conda:cuvs-cpp rocky8-clib-standalone-build-matrix: permissions: @@ -68,7 +70,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) }} @@ -82,7 +84,14 @@ 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: true + release-output-directory: . + release-unit: archive:libcuvs-c + release-package-file: libcuvs_c.release-package.json + release-artifacts: '[{"path":"libcuvs_c.tar.gz"}]' sha: ${{ inputs.sha }} rust-build-matrix: needs: cpp-build @@ -168,7 +177,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: @@ -183,6 +192,11 @@ jobs: script: "ci/build_java.sh" artifact-name: "cuvs-java-cuda${{ matrix.CUDA_VER }}" file_to_upload: "java/cuvs-java/target/" + release-build-output: true + release-output-directory: java/cuvs-java/target + release-unit: maven:cuvs-java + release-package-file: cuvs-java.release-package.json + release-artifacts: '[{"path":"cuvs-java-*-x86_64-cuda*.jar"}]' sha: ${{ inputs.sha }} python-build: needs: [cpp-build] @@ -193,13 +207,15 @@ 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' }} branch: ${{ inputs.branch }} date: ${{ inputs.date }} script: ci/build_python.sh sha: ${{ inputs.sha }} + release-build-output: true + release-unit: conda:cuvs-python # 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: @@ -254,7 +270,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' }} branch: ${{ inputs.branch }} @@ -266,6 +282,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 + release-build-output: true + release-unit: wheel:libcuvs wheel-publish-libcuvs: needs: wheel-build-libcuvs permissions: @@ -295,7 +313,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' }} branch: ${{ inputs.branch }} @@ -305,6 +323,8 @@ jobs: script: ci/build_wheel_cuvs.sh package-name: cuvs package-type: python + release-build-output: true + release-unit: wheel:cuvs # 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: diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 12d2d7f8eb..3c7d0eec73 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -399,11 +399,13 @@ 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 node_type: cpu16 script: ci/build_cpp.sh + release-build-output: true + release-unit: conda:cuvs-cpp conda-cpp-tests: needs: [conda-cpp-build, changed-files] permissions: @@ -440,10 +442,12 @@ 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 script: ci/build_python.sh + release-build-output: true + release-unit: conda:cuvs-python # 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))) conda-python-tests: @@ -477,7 +481,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) }} @@ -490,7 +494,14 @@ 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: true + release-output-directory: . + release-unit: archive:libcuvs-c + release-package-file: libcuvs_c.release-package.json + release-artifacts: '[{"path":"libcuvs_c.tar.gz"}]' sha: ${{ inputs.sha }} rocky8-clib-tests-matrix: needs: [rocky8-clib-standalone-build, changed-files] @@ -541,7 +552,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: @@ -555,6 +566,11 @@ jobs: script: "ci/test_java.sh" artifact-name: "cuvs-java-cuda${{ matrix.CUDA_VER }}" file_to_upload: "java/cuvs-java/target/" + release-build-output: true + release-output-directory: java/cuvs-java/target + release-unit: maven:cuvs-java + release-package-file: cuvs-java.release-package.json + release-artifacts: '[{"path":"cuvs-java-*-x86_64-cuda*.jar"}]' rust-build-matrix: needs: [conda-cpp-build, changed-files] permissions: @@ -641,7 +657,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 node_type: cpu16 @@ -650,6 +666,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 + release-build-output: true + release-unit: wheel:libcuvs wheel-build-cuvs: needs: wheel-build-libcuvs permissions: @@ -659,13 +677,15 @@ 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 node_type: cpu8 script: ci/build_wheel_cuvs.sh package-name: cuvs package-type: python + release-build-output: true + release-unit: wheel:cuvs # 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-tests-cuvs: 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 33123cd79c..a790918b5b 100755 --- a/ci/build_standalone_c.sh +++ b/ci/build_standalone_c.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 @@ -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