diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ffc3059253..9018a2ea73 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,13 +49,14 @@ 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 script: ci/build_cpp.sh sha: ${{ inputs.sha }} python-build: - needs: [cpp-build] + needs: [build-details, cpp-build] permissions: actions: read contents: read @@ -63,6 +67,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 @@ -105,6 +110,7 @@ jobs: script: "ci/build_docs.sh" sha: ${{ inputs.sha }} wheel-build-libraft: + needs: [build-details] permissions: actions: read contents: read @@ -115,6 +121,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 }} node_type: cpu16 @@ -143,7 +150,7 @@ jobs: package-type: cpp publish-wheel-search-key: raft_wheel_cpp_libraft wheel-build-pylibraft: - needs: wheel-build-libraft + needs: [build-details, wheel-build-libraft] permissions: actions: read contents: read @@ -154,6 +161,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 }} node_type: cpu8 @@ -182,7 +190,7 @@ jobs: package-type: python publish-wheel-search-key: raft_wheel_python_pylibraft wheel-build-raft-dask: - needs: wheel-build-libraft + needs: [build-details, wheel-build-libraft] permissions: actions: read contents: read @@ -193,6 +201,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 }} node_type: cpu8 diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 7791a4d7d3..8982e17848 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 @@ -50,6 +51,8 @@ jobs: # since other jobs depend on it. 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: @@ -92,7 +95,11 @@ jobs: - '!.github/labeler.yml' - '!.github/ops-bot.yml' - '!.github/release.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/labeler.yml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' + - '!.github/zizmor.yml' - '!.pre-commit-config.yaml' - '!.shellcheckrc' - '!.yamllint.yaml' @@ -115,7 +122,11 @@ jobs: - '!.github/labeler.yml' - '!.github/ops-bot.yml' - '!.github/release.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/labeler.yml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' + - '!.github/zizmor.yml' - '!.pre-commit-config.yaml' - '!.shellcheckrc' - '!.yamllint.yaml' @@ -147,7 +158,11 @@ jobs: - '!.github/labeler.yml' - '!.github/ops-bot.yml' - '!.github/release.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/labeler.yml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' + - '!.github/zizmor.yml' - '!.pre-commit-config.yaml' - '!.shellcheckrc' - '!.yamllint.yaml' @@ -178,7 +193,11 @@ jobs: - '!.github/labeler.yml' - '!.github/ops-bot.yml' - '!.github/release.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/labeler.yml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' + - '!.github/zizmor.yml' - '!.pre-commit-config.yaml' - '!.shellcheckrc' - '!.yamllint.yaml' @@ -211,7 +230,7 @@ jobs: enable_check_generated_files: false ignored_pr_jobs: telemetry-summarize conda-cpp-build: - needs: checks + needs: [build-details, checks] permissions: actions: read contents: read @@ -222,6 +241,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 }} script: ci/build_cpp.sh node_type: cpu16 conda-cpp-tests: @@ -252,7 +272,7 @@ jobs: build_type: pull-request package_name: libraft conda-python-build: - needs: conda-cpp-build + needs: [build-details, conda-cpp-build] permissions: actions: read contents: read @@ -263,6 +283,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))) @@ -298,7 +319,7 @@ jobs: container_image: "rapidsai/ci-conda:26.10-latest" script: "ci/build_docs.sh" wheel-build-libraft: - needs: checks + needs: [build-details, checks] permissions: actions: read contents: read @@ -309,6 +330,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 }} branch: ${{ inputs.branch }} sha: ${{ inputs.sha }} date: ${{ inputs.date }} @@ -319,7 +341,7 @@ jobs: package-name: libraft package-type: cpp wheel-build-pylibraft: - needs: [checks, wheel-build-libraft] + needs: [build-details, checks, wheel-build-libraft] permissions: actions: read contents: read @@ -330,6 +352,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_pylibraft.sh package-name: pylibraft @@ -351,7 +374,7 @@ jobs: build_type: pull-request script: ci/test_wheel_pylibraft.sh wheel-build-raft-dask: - needs: [checks, wheel-build-libraft] + needs: [build-details, checks, wheel-build-libraft] permissions: actions: read contents: read @@ -362,6 +385,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_raft_dask.sh" package-name: raft_dask diff --git a/ci/build_cpp.sh b/ci/build_cpp.sh index 26410a6d0d..7e29b0835d 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 2d4cfbcd32..d7567b4963 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_wheel.sh b/ci/build_wheel.sh index b9d32eff3c..81ec4e7bd4 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 @@ -30,12 +30,13 @@ rm -rf /usr/lib64/ucx rm -rf /usr/lib64/libuc* source rapids-configure-sccache -source rapids-date-string +source rapids-datetime-string 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/libraft/recipe.yaml b/conda/recipes/libraft/recipe.yaml index ce8e2e0a30..c7470c8e6d 100644 --- a/conda/recipes/libraft/recipe.yaml +++ b/conda/recipes/libraft/recipe.yaml @@ -1,4 +1,4 @@ -# 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 schema_version: 1 @@ -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 }} ucxx_version: ${{ env.get("UCXX_PACKAGE_DEPENDENCY") }} @@ -95,7 +95,7 @@ outputs: cmake --install cpp/build --component Unspecified cmake --install cpp/build --component raft cmake --install cpp/build --component distributed - string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }} dynamic_linking: overlinking_behavior: "error" requirements: @@ -136,7 +136,7 @@ outputs: name: libraft-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" requirements: @@ -181,7 +181,7 @@ outputs: name: libraft version: ${{ version }} build: - string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }} dynamic_linking: overlinking_behavior: "error" script: @@ -231,7 +231,7 @@ outputs: name: libraft-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" script: @@ -281,7 +281,7 @@ outputs: name: libraft-tests version: ${{ version }} build: - string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }} dynamic_linking: overlinking_behavior: "error" script: diff --git a/conda/recipes/pylibraft/recipe.yaml b/conda/recipes/pylibraft/recipe.yaml index b12f35b29b..8468241a35 100644 --- a/conda/recipes/pylibraft/recipe.yaml +++ b/conda/recipes/pylibraft/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") }}' py_abi_min: ${{ env.get("RAPIDS_PY_VERSION") }} py_buildstring: ${{ py_abi_min | version_to_buildstring }} py_runtime_latest: "3.14" @@ -21,7 +21,7 @@ source: path: ../../.. build: - string: cuda${{ cuda_major }}_cp${{ py_buildstring }}_abi3_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_cp${{ py_buildstring }}_abi3_${{ datetime_string }}_${{ head_rev }} python: version_independent: true dynamic_linking: diff --git a/conda/recipes/raft-dask/recipe.yaml b/conda/recipes/raft-dask/recipe.yaml index 0466e2e5e9..c6c70bb713 100644 --- a/conda/recipes/raft-dask/recipe.yaml +++ b/conda/recipes/raft-dask/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") }}' py_abi_min: ${{ env.get("RAPIDS_PY_VERSION") }} py_buildstring: ${{ py_abi_min | version_to_buildstring }} py_runtime_latest: "3.14" @@ -22,7 +22,7 @@ source: path: ../../.. build: - string: cuda${{ cuda_major }}_cp${{ py_buildstring }}_abi3_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_cp${{ py_buildstring }}_abi3_${{ datetime_string }}_${{ head_rev }} python: version_independent: true dynamic_linking: