diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f1d4123a6..c11938346 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -130,6 +130,7 @@ jobs: date: ${{ inputs.date }} package-name: libcuopt package-type: cpp + publish-wheel-search-key: cuopt_wheel_cpp_libcuopt wheel-build-cuopt: needs: [wheel-build-libcuopt] permissions: @@ -167,6 +168,7 @@ jobs: date: ${{ inputs.date }} package-name: cuopt package-type: python + publish-wheel-search-key: cuopt_wheel_python_cuopt_ wheel-build-cuopt-server: permissions: actions: read @@ -206,6 +208,7 @@ jobs: date: ${{ inputs.date }} package-name: cuopt_server package-type: python + publish-wheel-search-key: cuopt_wheel_python_cuopt-server docs-build: needs: [python-build] permissions: @@ -267,6 +270,7 @@ jobs: date: ${{ inputs.date }} package-name: cuopt_sh_client package-type: python + publish-wheel-search-key: cuopt_wheel_python_cuopt-sh-client tests: # Docker image build / tests aren't necessary for the 'test.yaml' workflow, # so 'test.yaml' can be triggered without waiting for those. diff --git a/.github/workflows/self_hosted_service_test.yaml b/.github/workflows/self_hosted_service_test.yaml index 2cacb05b0..b949241a5 100644 --- a/.github/workflows/self_hosted_service_test.yaml +++ b/.github/workflows/self_hosted_service_test.yaml @@ -47,7 +47,7 @@ jobs: runs-on: linux-amd64-gpu-l4-latest-1 strategy: matrix: - ctk: ["12.9.0"] + ctk: ["12.9.1"] linux_ver: ["ubuntu24.04"] py_ver: ["3.12"] container: diff --git a/ci/build_cpp.sh b/ci/build_cpp.sh index 749a0b6ee..cb6d61b5e 100755 --- a/ci/build_cpp.sh +++ b/ci/build_cpp.sh @@ -1,6 +1,6 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 @@ -43,3 +43,6 @@ sccache --show-adv-stats # remove build_cache directory to avoid uploading the entire source tree # tracked in https://github.com/prefix-dev/rattler-build/issues/1424 rm -rf "$RAPIDS_CONDA_BLD_OUTPUT_DIR"/build_cache + +RAPIDS_PACKAGE_NAME="$(rapids-artifact-name conda_cpp libcuopt cuopt --cuda "$RAPIDS_CUDA_VERSION")" +export RAPIDS_PACKAGE_NAME diff --git a/ci/build_docs.sh b/ci/build_docs.sh index 3bdc1e75a..c9fc8a5fe 100755 --- a/ci/build_docs.sh +++ b/ci/build_docs.sh @@ -1,6 +1,6 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 set -euo pipefail @@ -17,8 +17,8 @@ RAPIDS_VERSION_MAJOR_MINOR="$(rapids-version-major-minor)" export RAPIDS_VERSION_MAJOR_MINOR rapids-logger "Downloading artifacts from previous jobs" -CPP_CHANNEL=$(rapids-download-conda-from-github cpp) -PYTHON_CHANNEL=$(rapids-download-conda-from-github python) +CPP_CHANNEL=$(rapids-download-from-github "$(rapids-artifact-name conda_cpp libcuopt cuopt --cuda "$RAPIDS_CUDA_VERSION")") +PYTHON_CHANNEL=$(rapids-download-from-github "$(rapids-artifact-name conda_python cuopt cuopt --py "$RAPIDS_PY_VERSION" --cuda "$RAPIDS_CUDA_VERSION")") rapids-logger "Generating conda environment YAML" diff --git a/ci/build_python.sh b/ci/build_python.sh index 46d8a85fd..4595e3a82 100755 --- a/ci/build_python.sh +++ b/ci/build_python.sh @@ -13,7 +13,7 @@ export CMAKE_GENERATOR=Ninja rapids-print-env -CPP_CHANNEL=$(rapids-download-conda-from-github cpp) +CPP_CHANNEL=$(rapids-download-from-github "$(rapids-artifact-name conda_cpp libcuopt cuopt --cuda "$RAPIDS_CUDA_VERSION")") version=$(rapids-generate-version) export RAPIDS_PACKAGE_VERSION=${version} @@ -66,3 +66,6 @@ rattler-build build --recipe conda/recipes/cuopt-sh-client \ # remove build_cache directory to avoid uploading the entire source tree # tracked in https://github.com/prefix-dev/rattler-build/issues/1424 rm -rf "$RAPIDS_CONDA_BLD_OUTPUT_DIR"/build_cache + +RAPIDS_PACKAGE_NAME="$(rapids-artifact-name conda_python cuopt cuopt --py "$RAPIDS_PY_VERSION" --cuda "$RAPIDS_CUDA_VERSION")" +export RAPIDS_PACKAGE_NAME diff --git a/ci/build_wheel_cuopt.sh b/ci/build_wheel_cuopt.sh index f3d4730b8..f624b2770 100755 --- a/ci/build_wheel_cuopt.sh +++ b/ci/build_wheel_cuopt.sh @@ -27,7 +27,7 @@ RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" # env variable 'PIP_CONSTRAINT' is set up by rapids-init-pip. It constrains all subsequent # 'pip install', 'pip download', etc. calls (except those used in 'pip wheel', handled separately in build scripts) RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" -LIBCUOPT_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="libcuopt_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github cpp) +LIBCUOPT_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_cpp libcuopt cuopt --cuda "$RAPIDS_CUDA_VERSION")") echo "libcuopt-${RAPIDS_PY_CUDA_SUFFIX} @ file://$(echo ${LIBCUOPT_WHEELHOUSE}/libcuopt_*.whl)" >> "${PIP_CONSTRAINT}" @@ -51,3 +51,6 @@ ci/build_wheel.sh cuopt ${package_dir} python -m auditwheel repair "${EXCLUDE_ARGS[@]}" -w ${RAPIDS_WHEEL_BLD_OUTPUT_DIR} ${package_dir}/dist/* ci/validate_wheel.sh "${package_dir}" "${RAPIDS_WHEEL_BLD_OUTPUT_DIR}" + +RAPIDS_PACKAGE_NAME="$(rapids-artifact-name wheel_python cuopt cuopt --py "$RAPIDS_PY_VERSION" --cuda "$RAPIDS_CUDA_VERSION")" +export RAPIDS_PACKAGE_NAME diff --git a/ci/build_wheel_cuopt_server.sh b/ci/build_wheel_cuopt_server.sh index 1be325303..678232897 100755 --- a/ci/build_wheel_cuopt_server.sh +++ b/ci/build_wheel_cuopt_server.sh @@ -12,3 +12,7 @@ package_dir="python/cuopt_server" ci/build_wheel.sh cuopt_server ${package_dir} cp "${package_dir}/dist"/* "${RAPIDS_WHEEL_BLD_OUTPUT_DIR}/" ci/validate_wheel.sh "${package_dir}" "${RAPIDS_WHEEL_BLD_OUTPUT_DIR}" + +# `cuopt-server` is a pure + CUDA version package +RAPIDS_PACKAGE_NAME="$(rapids-artifact-name wheel_python cuopt-server cuopt --pure --arch any --cuda "$RAPIDS_CUDA_VERSION")" +export RAPIDS_PACKAGE_NAME diff --git a/ci/build_wheel_cuopt_sh_client.sh b/ci/build_wheel_cuopt_sh_client.sh index f5083b5eb..c0f70d361 100755 --- a/ci/build_wheel_cuopt_sh_client.sh +++ b/ci/build_wheel_cuopt_sh_client.sh @@ -12,3 +12,7 @@ package_dir="python/cuopt_self_hosted" ci/build_wheel.sh cuopt_sh_client ${package_dir} cp "${package_dir}/dist"/* "${RAPIDS_WHEEL_BLD_OUTPUT_DIR}/" ci/validate_wheel.sh "${package_dir}" "${RAPIDS_WHEEL_BLD_OUTPUT_DIR}" + +# `cuopt-sh-client` is a true pure package, no CUDA dependency +RAPIDS_PACKAGE_NAME="$(rapids-artifact-name wheel_python cuopt-sh-client cuopt --pure --arch any)" +export RAPIDS_PACKAGE_NAME diff --git a/ci/build_wheel_libcuopt.sh b/ci/build_wheel_libcuopt.sh index a12f41e9b..faa28c147 100755 --- a/ci/build_wheel_libcuopt.sh +++ b/ci/build_wheel_libcuopt.sh @@ -104,3 +104,6 @@ mkdir -p final_dist python -m auditwheel repair "${EXCLUDE_ARGS[@]}" -w "${RAPIDS_WHEEL_BLD_OUTPUT_DIR}" ${package_dir}/dist/* ci/validate_wheel.sh ${package_dir} "${RAPIDS_WHEEL_BLD_OUTPUT_DIR}" + +RAPIDS_PACKAGE_NAME="$(rapids-artifact-name wheel_cpp libcuopt cuopt --cuda "$RAPIDS_CUDA_VERSION")" +export RAPIDS_PACKAGE_NAME diff --git a/ci/test_cpp.sh b/ci/test_cpp.sh index 6ce4a2a0d..f824aabea 100755 --- a/ci/test_cpp.sh +++ b/ci/test_cpp.sh @@ -10,7 +10,7 @@ set -euo pipefail rapids-logger "Configuring conda strict channel priority" conda config --set channel_priority strict -CPP_CHANNEL=$(rapids-download-conda-from-github cpp) +CPP_CHANNEL=$(rapids-download-from-github "$(rapids-artifact-name conda_cpp libcuopt cuopt --cuda "$RAPIDS_CUDA_VERSION")") rapids-logger "Generate C++ testing dependencies" rapids-dependency-file-generator \ diff --git a/ci/test_cpp_memcheck.sh b/ci/test_cpp_memcheck.sh index bc4bce4cb..373504a13 100755 --- a/ci/test_cpp_memcheck.sh +++ b/ci/test_cpp_memcheck.sh @@ -1,6 +1,6 @@ #!/bin/bash -# SPDX-FileCopyrightText: Copyright (c) 2023-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2023-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 if [[ "$(date +%A)" != "Friday" ]]; then @@ -30,7 +30,7 @@ set +u conda activate test set -u -CPP_CHANNEL=$(rapids-download-conda-from-github cpp) +CPP_CHANNEL=$(rapids-download-from-github "$(rapids-artifact-name conda_cpp libcuopt cuopt --cuda "$RAPIDS_CUDA_VERSION")") RAPIDS_TESTS_DIR=${RAPIDS_TESTS_DIR:-"${PWD}/test-results"}/ mkdir -p "${RAPIDS_TESTS_DIR}" diff --git a/ci/test_notebooks.sh b/ci/test_notebooks.sh index 0b2b339ba..461b8092d 100755 --- a/ci/test_notebooks.sh +++ b/ci/test_notebooks.sh @@ -11,8 +11,8 @@ rapids-logger "Configuring conda strict channel priority" conda config --set channel_priority strict rapids-logger "Downloading artifacts from previous jobs" -CPP_CHANNEL=$(rapids-download-conda-from-github cpp) -PYTHON_CHANNEL=$(rapids-download-conda-from-github python) +CPP_CHANNEL=$(rapids-download-from-github "$(rapids-artifact-name conda_cpp libcuopt cuopt --cuda "$RAPIDS_CUDA_VERSION")") +PYTHON_CHANNEL=$(rapids-download-from-github "$(rapids-artifact-name conda_python cuopt cuopt --py "$RAPIDS_PY_VERSION" --cuda "$RAPIDS_CUDA_VERSION")") rapids-logger "Generate notebook testing dependencies" diff --git a/ci/test_python.sh b/ci/test_python.sh index df27dfddc..34a26c8f1 100755 --- a/ci/test_python.sh +++ b/ci/test_python.sh @@ -11,8 +11,8 @@ rapids-logger "Configuring conda strict channel priority" conda config --set channel_priority strict rapids-logger "Downloading artifacts from previous jobs" -CPP_CHANNEL=$(rapids-download-conda-from-github cpp) -PYTHON_CHANNEL=$(rapids-download-conda-from-github python) +CPP_CHANNEL=$(rapids-download-from-github "$(rapids-artifact-name conda_cpp libcuopt cuopt --cuda "$RAPIDS_CUDA_VERSION")") +PYTHON_CHANNEL=$(rapids-download-from-github "$(rapids-artifact-name conda_python cuopt cuopt --py "$RAPIDS_PY_VERSION" --cuda "$RAPIDS_CUDA_VERSION")") rapids-logger "Generate Python testing dependencies" rapids-dependency-file-generator \ diff --git a/ci/test_self_hosted_service.sh b/ci/test_self_hosted_service.sh index b9824a742..85498b16e 100755 --- a/ci/test_self_hosted_service.sh +++ b/ci/test_self_hosted_service.sh @@ -8,10 +8,9 @@ set -euo pipefail source rapids-init-pip # Download the cuopt built in the previous step -RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" -CUOPT_SERVER_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="cuopt_server_${RAPIDS_PY_CUDA_SUFFIX}" RAPIDS_PY_WHEEL_PURE="1" rapids-download-wheels-from-github python) -CUOPT_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="cuopt_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github python) -LIBCUOPT_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="libcuopt_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github cpp) +LIBCUOPT_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_cpp libcuopt cuopt --cuda "$RAPIDS_CUDA_VERSION")") +CUOPT_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_python cuopt cuopt --py "$RAPIDS_PY_VERSION" --cuda "$RAPIDS_CUDA_VERSION")") +CUOPT_SERVER_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_python cuopt-server cuopt --pure --arch any --cuda "$RAPIDS_CUDA_VERSION")") # generate constraints (possibly pinning to oldest support versions of dependencies) rapids-generate-pip-constraints test_python "${PIP_CONSTRAINT}" diff --git a/ci/test_wheel_cuopt.sh b/ci/test_wheel_cuopt.sh index b4830ec3e..d6267088b 100755 --- a/ci/test_wheel_cuopt.sh +++ b/ci/test_wheel_cuopt.sh @@ -16,16 +16,16 @@ bash "$(dirname "$(realpath "${BASH_SOURCE[0]}")")/utils/install_openssl3_runtim # Download the packages built in the previous step RAPIDS_PY_CUDA_SUFFIX="$(rapids-wheel-ctk-name-gen "${RAPIDS_CUDA_VERSION}")" -CUOPT_SH_CLIENT_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="cuopt_sh_client" RAPIDS_PY_WHEEL_PURE="1" rapids-download-wheels-from-github python) -CUOPT_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="cuopt_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github python) -LIBCUOPT_WHEELHOUSE=$(RAPIDS_PY_WHEEL_NAME="libcuopt_${RAPIDS_PY_CUDA_SUFFIX}" rapids-download-wheels-from-github cpp) +LIBCUOPT_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_cpp libcuopt cuopt --cuda "$RAPIDS_CUDA_VERSION")") +CUOPT_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_python cuopt cuopt --py "$RAPIDS_PY_VERSION" --cuda "$RAPIDS_CUDA_VERSION")") +CUOPT_SH_CLIENT_WHEELHOUSE=$(rapids-download-from-github "$(rapids-artifact-name wheel_python cuopt-sh-client cuopt --pure --arch any)") # update pip constraints.txt to ensure all future 'pip install' (including those in ci/thirdparty-testing) # use these wheels for cuopt packages cat > "${PIP_CONSTRAINT}" <