diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b0cb2057b2..860b942d6e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -31,11 +31,15 @@ concurrency: cancel-in-progress: true permissions: {} jobs: + build-details: + uses: rapidsai/shared-workflows/.github/workflows/compute-build-details.yaml@main cpp-build: + needs: [build-details] secrets: inherit # zizmor: ignore[secrets-inherit] 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 @@ -48,11 +52,12 @@ jobs: packages: read pull-requests: read python-build: - needs: [cpp-build] + needs: [build-details, cpp-build] secrets: inherit # zizmor: ignore[secrets-inherit] 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 @@ -103,12 +108,14 @@ jobs: packages: read pull-requests: read wheel-build-libcugraph: + needs: [build-details] secrets: inherit # zizmor: ignore[secrets-inherit] uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main with: # build for every combination of arch and CUDA version, but only for the latest Python version matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber))) build_type: ${{ inputs.build_type || 'branch' }} + build-datetime: ${{ needs.build-details.outputs.build-datetime }} branch: ${{ inputs.branch }} sha: ${{ inputs.sha }} date: ${{ inputs.date }} @@ -143,11 +150,12 @@ jobs: packages: read pull-requests: read wheel-build-pylibcugraph: - needs: wheel-build-libcugraph + needs: [build-details, wheel-build-libcugraph] secrets: inherit # zizmor: ignore[secrets-inherit] 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 }} @@ -184,11 +192,12 @@ jobs: packages: read pull-requests: read wheel-build-cugraph: - needs: wheel-build-pylibcugraph + needs: [build-details, wheel-build-pylibcugraph] secrets: inherit # zizmor: ignore[secrets-inherit] 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 c98720c399..1836180b93 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 @@ -43,6 +44,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: @@ -78,7 +81,10 @@ jobs: - '!.github/ops-bot.yaml' - '!.github/release.yml' - '!.github/workflows/add-to-project.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/labeler.yml' - '!.github/workflows/new-issues-to-triage-projects.yml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' - '!.pre-commit-config.yaml' - '!.yamllint.yaml' @@ -106,7 +112,10 @@ jobs: - '!.github/ops-bot.yaml' - '!.github/release.yml' - '!.github/workflows/add-to-project.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/labeler.yml' - '!.github/workflows/new-issues-to-triage-projects.yml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' - '!.pre-commit-config.yaml' - '!.yamllint.yaml' @@ -141,7 +150,10 @@ jobs: - '!.github/ops-bot.yaml' - '!.github/release.yml' - '!.github/workflows/add-to-project.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/labeler.yml' - '!.github/workflows/new-issues-to-triage-projects.yml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' - '!.pre-commit-config.yaml' - '!.yamllint.yaml' @@ -170,7 +182,10 @@ jobs: - '!.github/ops-bot.yaml' - '!.github/release.yml' - '!.github/workflows/add-to-project.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/labeler.yml' - '!.github/workflows/new-issues-to-triage-projects.yml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' - '!.pre-commit-config.yaml' - '!.yamllint.yaml' @@ -203,7 +218,10 @@ jobs: - '!.github/ops-bot.yaml' - '!.github/release.yml' - '!.github/workflows/add-to-project.yml' + - '!.github/workflows/build.yaml' + - '!.github/workflows/labeler.yml' - '!.github/workflows/new-issues-to-triage-projects.yml' + - '!.github/workflows/test.yaml' - '!.github/workflows/trigger-breaking-change-alert.yaml' - '!.pre-commit-config.yaml' - '!.yamllint.yaml' @@ -237,11 +255,12 @@ jobs: permissions: contents: read conda-cpp-build: - needs: checks + needs: [build-details, checks] secrets: inherit # zizmor: ignore[secrets-inherit] 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 permissions: @@ -278,11 +297,12 @@ jobs: packages: read pull-requests: read conda-python-build: - needs: conda-cpp-build + needs: [build-details, conda-cpp-build] secrets: inherit # zizmor: ignore[secrets-inherit] 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))) @@ -341,13 +361,14 @@ jobs: packages: read pull-requests: read wheel-build-libcugraph: - needs: checks + needs: [build-details, checks] secrets: inherit # zizmor: ignore[secrets-inherit] uses: rapidsai/shared-workflows/.github/workflows/wheels-build.yaml@main with: # build for every combination of arch and CUDA version, but only for the latest Python matrix_filter: group_by([.ARCH, (.CUDA_VER|split(".")|map(tonumber)|.[0])]) | map(max_by(.PY_VER|split(".")|map(tonumber))) build_type: pull-request + build-datetime: ${{ needs.build-details.outputs.build-datetime }} node_type: cpu16 script: ci/build_wheel_libcugraph.sh package-name: libcugraph @@ -359,11 +380,12 @@ jobs: packages: read pull-requests: read wheel-build-pylibcugraph: - needs: wheel-build-libcugraph + needs: [build-details, wheel-build-libcugraph] secrets: inherit # zizmor: ignore[secrets-inherit] 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_pylibcugraph.sh package-name: pylibcugraph @@ -391,11 +413,12 @@ jobs: packages: read pull-requests: read wheel-build-cugraph: - needs: wheel-build-pylibcugraph + needs: [build-details, wheel-build-pylibcugraph] secrets: inherit # zizmor: ignore[secrets-inherit] 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_cugraph.sh package-name: cugraph diff --git a/ci/build_cpp.sh b/ci/build_cpp.sh index 78f27b4832..1aa627818d 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 14f0e72563..7ec2de5c38 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 93cb1f1e24..689ab0cfd6 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/cugraph/recipe.yaml b/conda/recipes/cugraph/recipe.yaml index c5f57137e5..9a962e4adb 100644 --- a/conda/recipes/cugraph/recipe.yaml +++ b/conda/recipes/cugraph/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' diff --git a/conda/recipes/libcugraph/recipe.yaml b/conda/recipes/libcugraph/recipe.yaml index dbf27fd84b..4fd81dbd34 100644 --- a/conda/recipes/libcugraph/recipe.yaml +++ b/conda/recipes/libcugraph/recipe.yaml @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: Copyright (c) 2018-2026, NVIDIA CORPORATION. +# SPDX-FileCopyrightText: Copyright (c) 2018-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] }}' recipe: @@ -107,7 +107,7 @@ outputs: - lib/libcugraph_common.so - lib/libcugraph_mg.so - lib/libcugraph_mtmg.so - string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }} requirements: build: - cmake ${{ cmake_version }} @@ -169,7 +169,7 @@ outputs: ignore: # See https://github.com/rapidsai/build-planning/issues/160 - lib/libcugraph_etl.so - string: cuda${{ cuda_major }}_${{ date_string }}_${{ head_rev }} + string: cuda${{ cuda_major }}_${{ datetime_string }}_${{ head_rev }} requirements: build: - cmake ${{ cmake_version }} @@ -220,7 +220,7 @@ outputs: cmake --install cpp/libcugraph_etl/build --component testing dynamic_linking: overlinking_behavior: "error" - 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/pylibcugraph/recipe.yaml b/conda/recipes/pylibcugraph/recipe.yaml index 597855eebf..25531d8c36 100644 --- a/conda/recipes/pylibcugraph/recipe.yaml +++ b/conda/recipes/pylibcugraph/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 pylibcugraph