diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c209d0c0ad..19249b2dae 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -35,7 +35,10 @@ concurrency: permissions: {} jobs: + build-details: + uses: rapidsai/shared-workflows/.github/workflows/compute-build-details.yaml@main cpp-build: + needs: [build-details] permissions: actions: read contents: read @@ -46,6 +49,7 @@ jobs: uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@main with: build_type: ${{ inputs.build_type || 'branch' }} + build-datetime: ${{ needs.build-details.outputs.build-datetime }} branch: ${{ inputs.branch }} date: ${{ inputs.date }} node_type: cpu16 @@ -60,7 +64,7 @@ jobs: build_type: pull-request matrix_name: conda-cpp-build rocky8-clib-standalone-build: - needs: rocky8-clib-standalone-build-matrix + needs: [build-details, rocky8-clib-standalone-build-matrix] permissions: actions: read contents: read @@ -74,6 +78,7 @@ jobs: matrix: ${{ fromJSON(needs.rocky8-clib-standalone-build-matrix.outputs.matrix) }} with: build_type: ${{ inputs.build_type || 'branch' }} + build-datetime: ${{ needs.build-details.outputs.build-datetime }} branch: ${{ inputs.branch }} arch: "${{matrix.ARCH}}" date: ${{ inputs.date }} @@ -185,7 +190,7 @@ jobs: file_to_upload: "java/cuvs-java/target/" sha: ${{ inputs.sha }} python-build: - needs: [cpp-build] + needs: [build-details, cpp-build] permissions: actions: read contents: read @@ -196,6 +201,7 @@ jobs: uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main 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 @@ -247,6 +253,7 @@ jobs: script: "ci/build_docs.sh" sha: ${{ inputs.sha }} wheel-build-libcuvs: + needs: [build-details] permissions: actions: read contents: read @@ -257,6 +264,7 @@ jobs: uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main with: build_type: ${{ inputs.build_type || 'branch' }} + build-datetime: ${{ needs.build-details.outputs.build-datetime }} branch: ${{ inputs.branch }} sha: ${{ inputs.sha }} date: ${{ inputs.date }} @@ -287,7 +295,7 @@ jobs: package-type: cpp publish-wheel-search-key: cuvs_wheel_cpp_libcuvs wheel-build-cuvs: - needs: wheel-build-libcuvs + needs: [build-details, wheel-build-libcuvs] permissions: actions: read contents: read @@ -298,6 +306,7 @@ jobs: uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main with: build_type: ${{ inputs.build_type || 'branch' }} + build-datetime: ${{ needs.build-details.outputs.build-datetime }} branch: ${{ inputs.branch }} sha: ${{ inputs.sha }} date: ${{ inputs.date }} diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 12d2d7f8eb..b4582957ee 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -10,6 +10,7 @@ permissions: {} jobs: pr-builder: needs: + - build-details - check-nightly-ci - changed-files - checks @@ -52,6 +53,8 @@ jobs: - name: Telemetry setup if: ${{ vars.TELEMETRY_ENABLED == 'true' }} uses: rapidsai/shared-actions/telemetry-dispatch-stash-base-env-vars@main + build-details: + uses: rapidsai/shared-workflows/.github/workflows/compute-build-details.yaml@main check-nightly-ci: runs-on: ubuntu-latest permissions: @@ -93,8 +96,14 @@ jobs: - '!.github/labeler.yml' - '!.github/ops-bot.yaml' - '!.github/release.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/check-c-abi.yaml' + - '!.github/workflows/labeler.yml' - '!.github/workflows/publish-rust.yaml' + - '!.github/workflows/store-c-abi-baseline.yaml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' + - '!.github/workflows/update-c-abi-baseline.yaml' - '!.pre-commit-config.yaml' - '!.shellcheckrc' - '!.yamllint.yaml' @@ -119,8 +128,14 @@ jobs: - '!.github/labeler.yml' - '!.github/ops-bot.yaml' - '!.github/release.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/check-c-abi.yaml' + - '!.github/workflows/labeler.yml' - '!.github/workflows/publish-rust.yaml' + - '!.github/workflows/store-c-abi-baseline.yaml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' + - '!.github/workflows/update-c-abi-baseline.yaml' - '!.pre-commit-config.yaml' - '!.shellcheckrc' - '!.yamllint.yaml' @@ -158,8 +173,14 @@ jobs: - '!.github/labeler.yml' - '!.github/ops-bot.yaml' - '!.github/release.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/check-c-abi.yaml' + - '!.github/workflows/labeler.yml' - '!.github/workflows/publish-rust.yaml' + - '!.github/workflows/store-c-abi-baseline.yaml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' + - '!.github/workflows/update-c-abi-baseline.yaml' - '!.pre-commit-config.yaml' - '!.shellcheckrc' - '!.yamllint.yaml' @@ -204,10 +225,12 @@ jobs: - '!.github/labeler.yml' - '!.github/ops-bot.yaml' - '!.github/release.yml' + - '!.github/workflows/build.yaml' - '!.github/workflows/check-c-abi.yaml' - '!.github/workflows/labeler.yml' - '!.github/workflows/publish-rust.yaml' - '!.github/workflows/store-c-abi-baseline.yaml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' - '!.github/workflows/update-c-abi-baseline.yaml' - '!.pre-commit-config.yaml' @@ -251,8 +274,14 @@ jobs: - '!.github/labeler.yml' - '!.github/ops-bot.yaml' - '!.github/release.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/check-c-abi.yaml' + - '!.github/workflows/labeler.yml' - '!.github/workflows/publish-rust.yaml' + - '!.github/workflows/store-c-abi-baseline.yaml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' + - '!.github/workflows/update-c-abi-baseline.yaml' - '!.pre-commit-config.yaml' - '!.shellcheckrc' - '!.yamllint.yaml' @@ -299,8 +328,14 @@ jobs: - '!.github/labeler.yml' - '!.github/ops-bot.yaml' - '!.github/release.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/check-c-abi.yaml' + - '!.github/workflows/labeler.yml' - '!.github/workflows/publish-rust.yaml' + - '!.github/workflows/store-c-abi-baseline.yaml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' + - '!.github/workflows/update-c-abi-baseline.yaml' - '!.pre-commit-config.yaml' - '!.shellcheckrc' - '!.yamllint.yaml' @@ -342,8 +377,14 @@ jobs: - '!.github/labeler.yml' - '!.github/ops-bot.yaml' - '!.github/release.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/check-c-abi.yaml' + - '!.github/workflows/labeler.yml' - '!.github/workflows/publish-rust.yaml' + - '!.github/workflows/store-c-abi-baseline.yaml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' + - '!.github/workflows/update-c-abi-baseline.yaml' - '!.pre-commit-config.yaml' - '!.shellcheckrc' - '!.yamllint.yaml' @@ -391,7 +432,7 @@ jobs: pull-requests: read uses: ./.github/workflows/check-c-abi.yaml conda-cpp-build: - needs: checks + needs: [build-details, checks] permissions: actions: read contents: read @@ -402,6 +443,7 @@ jobs: uses: rapidsai/shared-workflows/.github/workflows/conda-cpp-build.yaml@main with: build_type: pull-request + build-datetime: ${{ needs.build-details.outputs.build-datetime }} node_type: cpu16 script: ci/build_cpp.sh conda-cpp-tests: @@ -432,7 +474,7 @@ jobs: symbol_exclusions: (void (thrust::|cub::)) package_name: libcuvs conda-python-build: - needs: conda-cpp-build + needs: [build-details, conda-cpp-build] permissions: actions: read contents: read @@ -443,6 +485,7 @@ jobs: uses: rapidsai/shared-workflows/.github/workflows/conda-python-build.yaml@main with: build_type: pull-request + build-datetime: ${{ needs.build-details.outputs.build-datetime }} script: ci/build_python.sh # 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))) @@ -469,7 +512,7 @@ jobs: build_type: pull-request matrix_name: conda-cpp-build rocky8-clib-standalone-build: - needs: rocky8-clib-standalone-build-matrix + needs: [build-details, rocky8-clib-standalone-build-matrix] permissions: actions: read contents: read @@ -483,6 +526,7 @@ jobs: matrix: ${{ fromJSON(needs.rocky8-clib-standalone-build-matrix.outputs.matrix) }} with: build_type: pull-request + build-datetime: ${{ needs.build-details.outputs.build-datetime }} arch: "${{matrix.arch}}" date: ${{ inputs.date }}_c container_image: "rapidsai/ci-wheel:26.10-cuda${{ matrix.CUDA_VER }}-${{ matrix.LINUX_VER }}-py${{ matrix.PY_VER }}" @@ -633,7 +677,7 @@ jobs: container_image: "rapidsai/ci-conda:26.10-latest" script: "ci/build_docs.sh" wheel-build-libcuvs: - needs: checks + needs: [build-details, checks] permissions: actions: read contents: read @@ -644,6 +688,7 @@ jobs: uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main with: build_type: pull-request + build-datetime: ${{ needs.build-details.outputs.build-datetime }} node_type: cpu16 script: ci/build_wheel_libcuvs.sh # build for every combination of arch and CUDA version, but only for the latest Python @@ -651,7 +696,7 @@ jobs: package-name: libcuvs package-type: cpp wheel-build-cuvs: - needs: wheel-build-libcuvs + needs: [build-details, wheel-build-libcuvs] permissions: actions: read contents: read @@ -662,6 +707,7 @@ jobs: uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main with: build_type: pull-request + build-datetime: ${{ needs.build-details.outputs.build-datetime }} node_type: cpu8 script: ci/build_wheel_cuvs.sh package-name: cuvs diff --git a/ci/build_cpp.sh b/ci/build_cpp.sh index bb497692bd..e55a94bd38 100755 --- a/ci/build_cpp.sh +++ b/ci/build_cpp.sh @@ -1,11 +1,11 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 set -euo pipefail source rapids-configure-sccache -source rapids-date-string +source rapids-datetime-string export CMAKE_GENERATOR=Ninja diff --git a/ci/build_python.sh b/ci/build_python.sh index 6823cbbec5..feb5390bb4 100755 --- a/ci/build_python.sh +++ b/ci/build_python.sh @@ -1,11 +1,11 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2022-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 set -euo pipefail source rapids-configure-sccache -source rapids-date-string +source rapids-datetime-string export CMAKE_GENERATOR=Ninja diff --git a/ci/build_standalone_c.sh b/ci/build_standalone_c.sh index 33123cd79c..94cffe1d64 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 @@ -38,7 +38,7 @@ fi source rapids-install-sccache source rapids-configure-sccache -source rapids-date-string +source rapids-datetime-string rapids-pip-retry install cmake pyenv rehash diff --git a/ci/build_wheel.sh b/ci/build_wheel.sh index 6adee1fe34..b8e09827bd 100755 --- a/ci/build_wheel.sh +++ b/ci/build_wheel.sh @@ -1,5 +1,5 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 set -euo pipefail @@ -24,13 +24,14 @@ while [[ $# -gt 0 ]]; do done source rapids-configure-sccache -source rapids-date-string +source rapids-datetime-string 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-generate-version > ./VERSION +RAPIDS_VERSION_SUFFIX=".post${RAPIDS_DATETIME_STRING}" \ + rapids-generate-version > ./VERSION cd "${package_dir}" diff --git a/conda/recipes/cuvs-bench-cpu/recipe.yaml b/conda/recipes/cuvs-bench-cpu/recipe.yaml index fc57688dd4..76c4e7eb16 100644 --- a/conda/recipes/cuvs-bench-cpu/recipe.yaml +++ b/conda/recipes/cuvs-bench-cpu/recipe.yaml @@ -4,7 +4,7 @@ schema_version: 1 context: version: ${{ env.get("RAPIDS_PACKAGE_VERSION") }} - date_string: '${{ env.get("RAPIDS_DATE_STRING") }}' + datetime_string: '${{ env.get("RAPIDS_DATETIME_STRING") }}' head_rev: '${{ git.head_rev(".")[:8] }}' linux64: ${{ linux and x86_64 }} py_abi_min: ${{ env.get("RAPIDS_PY_VERSION") }} @@ -21,7 +21,7 @@ source: build: python: version_independent: true - string: cp${{ py_buildstring }}_abi3_${{ date_string }}_${{ head_rev }} + string: cp${{ py_buildstring }}_abi3_${{ datetime_string }}_${{ head_rev }} script: content: | diff --git a/conda/recipes/cuvs-bench/recipe.yaml b/conda/recipes/cuvs-bench/recipe.yaml index ece9235a33..655164f962 100644 --- a/conda/recipes/cuvs-bench/recipe.yaml +++ b/conda/recipes/cuvs-bench/recipe.yaml @@ -7,7 +7,7 @@ context: minor_version: ${{ (version | split("."))[:2] | join(".") }} cuda_version: ${{ (env.get("RAPIDS_CUDA_VERSION") | split("."))[:2] | join(".") }} cuda_major: '${{ (env.get("RAPIDS_CUDA_VERSION") | split("."))[0] }}' - date_string: '${{ env.get("RAPIDS_DATE_STRING") }}' + datetime_string: '${{ env.get("RAPIDS_DATETIME_STRING") }}' head_rev: '${{ git.head_rev(".")[:8] }}' py_abi_min: ${{ env.get("RAPIDS_PY_VERSION") }} py_buildstring: ${{ py_abi_min | version_to_buildstring }} @@ -23,7 +23,7 @@ source: build: python: version_independent: true - string: cuda${{ cuda_major }}_cp${{ py_buildstring }}_abi3_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_cp${{ py_buildstring }}_abi3_${{ datetime_string }}_${{ head_rev }} script: content: | python -m pip install --no-build-isolation --no-deps --config-settings rapidsai.disable-cuda=true ./python/cuvs_bench diff --git a/conda/recipes/cuvs/recipe.yaml b/conda/recipes/cuvs/recipe.yaml index 4a32b9f8d2..fb19067a3c 100644 --- a/conda/recipes/cuvs/recipe.yaml +++ b/conda/recipes/cuvs/recipe.yaml @@ -7,7 +7,7 @@ context: minor_version: ${{ (version | split("."))[:2] | join(".") }} cuda_version: ${{ (env.get("RAPIDS_CUDA_VERSION") | split("."))[:2] | join(".") }} cuda_major: '${{ (env.get("RAPIDS_CUDA_VERSION") | split("."))[0] }}' - date_string: '${{ env.get("RAPIDS_DATE_STRING") }}' + datetime_string: '${{ env.get("RAPIDS_DATETIME_STRING") }}' head_rev: '${{ git.head_rev(".")[:8] }}' py_abi_min: ${{ env.get("RAPIDS_PY_VERSION") }} py_buildstring: ${{ py_abi_min | version_to_buildstring }} @@ -23,7 +23,7 @@ source: build: python: version_independent: true - string: cuda${{ cuda_major }}_cp${{ py_buildstring }}_abi3_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_cp${{ py_buildstring }}_abi3_${{ datetime_string }}_${{ head_rev }} script: content: | ./build.sh python --no-nvtx -v diff --git a/conda/recipes/libcuvs/recipe.yaml b/conda/recipes/libcuvs/recipe.yaml index b8ebd8ebec..33bb8ef8f1 100644 --- a/conda/recipes/libcuvs/recipe.yaml +++ b/conda/recipes/libcuvs/recipe.yaml @@ -7,7 +7,7 @@ context: minor_version: ${{ (version | split("."))[:2] | join(".") }} cuda_version: ${{ (env.get("RAPIDS_CUDA_VERSION") | split("."))[:2] | join(".") }} cuda_major: '${{ (env.get("RAPIDS_CUDA_VERSION") | split("."))[0] }}' - date_string: '${{ env.get("RAPIDS_DATE_STRING") }}' + datetime_string: '${{ env.get("RAPIDS_DATETIME_STRING") }}' head_rev: '${{ git.head_rev(".")[:8] }}' linux64: ${{ linux and x86_64 }} @@ -97,7 +97,7 @@ outputs: name: libcuvs-headers version: ${{ version }} build: - string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }} dynamic_linking: overlinking_behavior: "error" prefix_detection: @@ -155,7 +155,7 @@ outputs: name: libcuvs version: ${{ version }} build: - string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }} dynamic_linking: overlinking_behavior: "error" prefix_detection: @@ -218,7 +218,7 @@ outputs: name: libcuvs-static version: ${{ version }} build: - string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }} dynamic_linking: overlinking_behavior: "error" prefix_detection: @@ -280,7 +280,7 @@ outputs: version: ${{ version }} build: script: cmake --install cpp/build --component testing - string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }} dynamic_linking: overlinking_behavior: "error" prefix_detection: @@ -336,7 +336,7 @@ outputs: name: libcuvs-examples version: ${{ version }} build: - string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }} dynamic_linking: overlinking_behavior: "error" prefix_detection: @@ -448,7 +448,7 @@ outputs: # component associated with it. Probably a better way to do this. cp cpp/build/_deps/diskann-build/src/libdiskann.so $PREFIX/lib/ fi - string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }} dynamic_linking: overlinking_behavior: "error" prefix_detection: