diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 411e556..9bfe33c 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 }} node_type: cpu16 branch: ${{ inputs.branch }} date: ${{ inputs.date }} 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 @@ -128,6 +133,7 @@ jobs: date: ${{ inputs.date }} sha: ${{ inputs.sha }} wheel-build-libnvforest: + needs: [build-details] permissions: actions: read contents: read @@ -138,6 +144,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 }} @@ -168,7 +175,7 @@ jobs: package-type: cpp publish-wheel-search-key: nvforest_wheel_cpp_libnvforest wheel-build-nvforest: - needs: wheel-build-libnvforest + needs: [build-details, wheel-build-libnvforest] permissions: actions: read contents: read @@ -179,6 +186,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 2dad91f..69a6025 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -11,6 +11,7 @@ jobs: # Please keep pr-builder as the top job here pr-builder: needs: + - build-details - check-nightly-ci - changed-files - checks @@ -45,6 +46,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: @@ -77,6 +80,15 @@ jobs: build_docs: - '!.coderabbit.yaml' - '!.devcontainer/**' + - '!.github/CODEOWNERS' + - '!.github/copy-pr-bot.yaml' + - '!.github/labeler.yml' + - '!.github/ops-bot.yaml' + - '!.github/release.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/labeler.yml' + - '!.github/workflows/test.yaml' + - '!.github/zizmor.yml' - '!.pre-commit-config.yaml' - '!.yamllint.yaml' - '!CONTRIBUTING.md' @@ -88,11 +100,15 @@ jobs: - '**' - '!.coderabbit.yaml' - '!.devcontainer/**' - - '!.github/CODEOWONERS' + - '!.github/CODEOWNERS' - '!.github/copy-pr-bot.yaml' - '!.github/labeler.yml' - '!.github/ops-bot.yaml' + - '!.github/release.yml' + - '!.github/workflows/build.yaml' - '!.github/workflows/labeler.yml' + - '!.github/workflows/test.yaml' + - '!.github/zizmor.yml' - '!.pre-commit-config.yaml' - '!.yamllint.yaml' - '!README.md' @@ -112,11 +128,15 @@ jobs: - '**' - '!.coderabbit.yaml' - '!.devcontainer/**' - - '!.github/CODEOWONERS' + - '!.github/CODEOWNERS' - '!.github/copy-pr-bot.yaml' - '!.github/labeler.yml' - '!.github/ops-bot.yaml' + - '!.github/release.yml' + - '!.github/workflows/build.yaml' - '!.github/workflows/labeler.yml' + - '!.github/workflows/test.yaml' + - '!.github/zizmor.yml' - '!.pre-commit-config.yaml' - '!.yamllint.yaml' - '!README.md' @@ -134,11 +154,15 @@ jobs: - '**' - '!.coderabbit.yaml' - '!.devcontainer/**' - - '!.github/CODEOWONERS' + - '!.github/CODEOWNERS' - '!.github/copy-pr-bot.yaml' - '!.github/labeler.yml' - '!.github/ops-bot.yaml' + - '!.github/release.yml' + - '!.github/workflows/build.yaml' - '!.github/workflows/labeler.yml' + - '!.github/workflows/test.yaml' + - '!.github/zizmor.yml' - '!.pre-commit-config.yaml' - '!.yamllint.yaml' - '!README.md' @@ -180,7 +204,7 @@ jobs: container_image: "rapidsai/ci-conda:26.10-latest" script: "ci/run_clang_tidy.sh" conda-cpp-build-cpu: - needs: [checks, changed-files] + needs: [build-details, checks, changed-files] permissions: actions: read contents: read @@ -192,12 +216,13 @@ jobs: if: fromJSON(needs.changed-files.outputs.changed_file_groups).test_cpp with: build_type: pull-request + build-datetime: ${{ needs.build-details.outputs.build-datetime }} node_type: cpu16 arch: "amd64" container_image: "rapidsai/ci-conda:26.10-latest" script: "env NVFOREST_EXTRA_CMAKE_ARGS=-DNVFOREST_ENABLE_GPU=OFF ci/build_cpp.sh" conda-cpp-build: - needs: checks + needs: [build-details, checks] permissions: actions: read contents: read @@ -208,6 +233,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: @@ -237,7 +263,7 @@ jobs: build_type: pull-request package_name: libnvforest conda-python-build: - needs: conda-cpp-build + needs: [build-details, conda-cpp-build] permissions: actions: read contents: read @@ -248,6 +274,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))) @@ -304,7 +331,7 @@ jobs: dry-run: true version-map: '{"26.04": "legacy", "26.06": "stable"}' wheel-build-libnvforest: - needs: checks + needs: [build-details, checks] permissions: actions: read contents: read @@ -315,6 +342,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 }} @@ -325,7 +353,7 @@ jobs: package-name: libnvforest package-type: cpp wheel-build-nvforest: - needs: [checks, wheel-build-libnvforest] + needs: [build-details, checks, wheel-build-libnvforest] permissions: actions: read contents: read @@ -336,6 +364,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_nvforest.sh package-name: nvforest diff --git a/ci/build_cpp.sh b/ci/build_cpp.sh index 03fac86..58dccb9 100755 --- a/ci/build_cpp.sh +++ b/ci/build_cpp.sh @@ -1,11 +1,11 @@ #!/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 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 7912083..f36cd26 100755 --- a/ci/build_python.sh +++ b/ci/build_python.sh @@ -1,11 +1,11 @@ #!/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 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 a34ec8f..bb93420 100755 --- a/ci/build_wheel.sh +++ b/ci/build_wheel.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 @@ -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/libnvforest/recipe.yaml b/conda/recipes/libnvforest/recipe.yaml index 42c4ec1..cdf4e54 100644 --- a/conda/recipes/libnvforest/recipe.yaml +++ b/conda/recipes/libnvforest/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] }}' recipe: @@ -92,7 +92,7 @@ outputs: ignore: # See https://github.com/rapidsai/build-planning/issues/160 - lib/libnvforest.so - string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }} requirements: build: - cmake ${{ cmake_version }} @@ -126,7 +126,7 @@ outputs: script: content: | cmake --install cpp/build --component testing - string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }} requirements: build: - cmake ${{ cmake_version }} diff --git a/conda/recipes/nvforest/recipe.yaml b/conda/recipes/nvforest/recipe.yaml index 98dc74e..5a7faa4 100644 --- a/conda/recipes/nvforest/recipe.yaml +++ b/conda/recipes/nvforest/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 }} files: exclude: - '*libarrow.so.*gdb.py'