-
Notifications
You must be signed in to change notification settings - Fork 140
Add nightly container support #180
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
rapids-bot
merged 140 commits into
NVIDIA:branch-25.08
from
rgsl888prabhu:add_nightly_container_support
Jul 25, 2025
Merged
Changes from all commits
Commits
Show all changes
140 commits
Select commit
Hold shift + click to select a range
b7457e0
Add version change
rgsl888prabhu 2c83df0
Add workflow to build image
rgsl888prabhu 49f4095
add docker folder and update yml
rgsl888prabhu 369d079
Update dockerfile
rgsl888prabhu 23a34eb
Update workflow
rgsl888prabhu 3757392
Merge branch 'branch-25.08' into add_nightly_container_support
rgsl888prabhu 48544e1
Add changes to accomdate image tag
rgsl888prabhu 0efc4b7
Merge branch 'add_nightly_container_support' of github.com:rgsl888pra…
rgsl888prabhu 3968704
Add multi arch script
rgsl888prabhu de1e24e
Add multi arch script
rgsl888prabhu 6ddf3a7
enable nightly build
rgsl888prabhu 812d751
test nightly
rgsl888prabhu be5f42c
fix
rgsl888prabhu e9dad7f
test workflow
rgsl888prabhu 80bc564
test workflow
rgsl888prabhu bfdb580
reconfigure test
rgsl888prabhu b9b76f2
fix workflow type
rgsl888prabhu 8770f90
name changes
rgsl888prabhu aa077e0
name update
rgsl888prabhu 6df3fc6
fix workflow
rgsl888prabhu ab66e7b
fix errors
rgsl888prabhu 9b8870b
fix errors
rgsl888prabhu a3b2106
fix error
rgsl888prabhu 2c527d3
fix error[A
rgsl888prabhu 9bb6ec5
fix error
rgsl888prabhu df5c2b8
fix error
rgsl888prabhu f55ba0a
fix error
rgsl888prabhu fb70698
fix error
rgsl888prabhu 5109fe5
fix error
rgsl888prabhu a5548f8
fix
rgsl888prabhu b0aa963
fix image
rgsl888prabhu 9a6b3eb
fix image
rgsl888prabhu ee88039
fix image
rgsl888prabhu cd28dc5
fix image
rgsl888prabhu caace75
fix image
rgsl888prabhu 3dfaad3
fix image
rgsl888prabhu 65655f2
fix image
rgsl888prabhu 3dc77a7
create a context folder and setup context
rgsl888prabhu c750458
create a context folder and setup context
rgsl888prabhu c97b9be
fix context
rgsl888prabhu 4dfdfb4
fix version
rgsl888prabhu 55600a7
fix branch name quotes
rgsl888prabhu 7749150
fix manifest
rgsl888prabhu 1441318
fix manifest job
rgsl888prabhu 92f3ec7
fix manifest
rgsl888prabhu 272d12a
fix manifest
rgsl888prabhu fab26a4
fix manifest
rgsl888prabhu 1ab9265
fix docker image names and manifest
rgsl888prabhu 89c5f49
fix image
rgsl888prabhu 623e7c6
fix image
rgsl888prabhu b26ce5d
fix image names
rgsl888prabhu 8c94fed
fix image names
rgsl888prabhu 67f6a4e
update workflows
rgsl888prabhu 5f38cd8
update workflow
rgsl888prabhu ef09b4d
Add copyright
rgsl888prabhu 6e60a2d
Add testing
rgsl888prabhu d7c9b1c
Testing container
rgsl888prabhu a41f9a3
update test yaml
rgsl888prabhu 155310a
update test yaml
rgsl888prabhu b20b3bf
update test yaml
rgsl888prabhu 0836421
update test yaml
rgsl888prabhu e48aa05
update test yaml
rgsl888prabhu 589dfec
update test yaml
rgsl888prabhu efba520
update test yaml
rgsl888prabhu a73c809
update test yaml
rgsl888prabhu 8ca1e5d
update test yaml
rgsl888prabhu ee0236e
update test yaml
rgsl888prabhu 9034cf3
update test yaml
rgsl888prabhu 8fcd63b
update test yaml
rgsl888prabhu de306f1
update test yaml
rgsl888prabhu d9a1243
update test yaml
rgsl888prabhu 5744e79
update test yaml
rgsl888prabhu d97d8a8
update test yaml
rgsl888prabhu f965aa8
Add debug
rgsl888prabhu 78b043e
Add debug
rgsl888prabhu 95bc449
fix debug
rgsl888prabhu 685eac5
debug
rgsl888prabhu 4a54a31
debug
rgsl888prabhu e80e8a3
enable python path
rgsl888prabhu d040fc0
update workflow
rgsl888prabhu f189f59
update
rgsl888prabhu ba609c7
update
rgsl888prabhu 9d2001d
python commit
rgsl888prabhu 6ee65c3
change HOME
rgsl888prabhu a51a7f7
change HOME
rgsl888prabhu 20744e8
utils
rgsl888prabhu 3073554
update utils
rgsl888prabhu bd5a624
update utils
rgsl888prabhu cdf2e75
new changes
rgsl888prabhu bb89f2e
fix issues
rgsl888prabhu 67db1aa
fix issues
rgsl888prabhu 36ce08f
test all
rgsl888prabhu c444d90
fix cli test and remove exhaustive testing
rgsl888prabhu a158339
Add fix to testing
rgsl888prabhu 2d552c9
enable all the tests
rgsl888prabhu a3742bc
update
rgsl888prabhu fe4be7f
update
rgsl888prabhu 38f2177
Update
rgsl888prabhu 9327151
change name
rgsl888prabhu edfd72b
test with complete workflow
rgsl888prabhu d36ffb1
fix issue
rgsl888prabhu 0f0b797
fix testing and docker file
rgsl888prabhu db00b53
fix PR
rgsl888prabhu 28096a9
fix style
rgsl888prabhu fee1a48
Merge github.com:nvidia/cuopt into add_nightly_container_support
rgsl888prabhu 65234a9
remove debug and update README
rgsl888prabhu f0afd7e
remove stale files and update license header
rgsl888prabhu 51f58b1
Add missing file
rgsl888prabhu 07c6a68
Update license
rgsl888prabhu 98887c1
fix style
rgsl888prabhu c234a70
remove debug
rgsl888prabhu 5528353
fix style
rgsl888prabhu cc20c7f
Update docker to accept PYTHON_SHORT_VER arg
rgsl888prabhu 9248e65
Address review comments
rgsl888prabhu 51a4fad
test
rgsl888prabhu c8d3808
Add new line
rgsl888prabhu 4530995
fix Docker file
rgsl888prabhu 81e3c3b
fix gcc requirement
rgsl888prabhu 757da9c
fix testing
rgsl888prabhu 0949da0
revert cahnges to pr
rgsl888prabhu 3f7d167
Merge branch 'branch-25.08' into add_nightly_container_support
rgsl888prabhu 48f0c15
Merge github.com:nvidia/cuopt into add_nightly_container_support
rgsl888prabhu 9f9a322
style
rgsl888prabhu 454b6e7
fix style
rgsl888prabhu b1de01b
update
rgsl888prabhu 898dffc
Merge branch 'branch-25.08' into add_nightly_container_support
rgsl888prabhu 9d6a7f5
Polish and remove gcc at the end
rgsl888prabhu 2fd0755
Merge branch 'add_nightly_container_support' of github.com:rgsl888pra…
rgsl888prabhu 563871a
add third party license to container
rgsl888prabhu 7219e46
remove unwated changes
rgsl888prabhu 6d5e14b
accept matrix data as input in workflow
rgsl888prabhu 303a73f
address review comments and testing
rgsl888prabhu f530e5f
add docker contex folder
rgsl888prabhu f1bdf17
move gcc purge down
rgsl888prabhu 3d3c84d
revert testing
rgsl888prabhu 1fe2e09
fix style
rgsl888prabhu 25a7d1d
Merge branch 'branch-25.08' into add_nightly_container_support
rgsl888prabhu 97512f1
Update test_image.sh
rgsl888prabhu 0275741
address review comments
rgsl888prabhu e5f1248
Merge branch 'add_nightly_container_support' of github.com:rgsl888pra…
rgsl888prabhu File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,102 @@ | ||
| # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
| # SPDX-License-Identifier: Apache-2.0 | ||
| # | ||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||
| # you may not use this file except in compliance with the License. | ||
| # You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, software | ||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| # See the License for the specific language governing permissions and | ||
| # limitations under the License. | ||
|
|
||
| name: Build and push image variant | ||
|
|
||
| on: | ||
| workflow_call: | ||
| inputs: | ||
| ARCHES: | ||
| required: true | ||
| type: string | ||
| CUDA_VER: | ||
| required: true | ||
| type: string | ||
| CUOPT_VER: | ||
| required: true | ||
| type: string | ||
| IMAGE_TAG_PREFIX: | ||
| required: true | ||
| type: string | ||
| LINUX_VER: | ||
| required: true | ||
| type: string | ||
| PYTHON_VER: | ||
| required: true | ||
| type: string | ||
|
|
||
| jobs: | ||
| build: | ||
| strategy: | ||
| matrix: | ||
| ARCH: ["${{ inputs.ARCHES }}"] | ||
| CUDA_VER: ["${{ inputs.CUDA_VER }}"] | ||
| PYTHON_VER: ["${{ inputs.PYTHON_VER }}"] | ||
| LINUX_VER: ["${{ inputs.LINUX_VER }}"] | ||
| fail-fast: false | ||
| runs-on: "linux-${{ matrix.ARCH }}-cpu4" | ||
| steps: | ||
| - name: Checkout code repo | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| fetch-depth: 0 | ||
| - name: Login to DockerHub | ||
| uses: docker/login-action@v3 | ||
| with: | ||
| username: ${{ secrets.CUOPT_DOCKERHUB_USERNAME }} | ||
| password: ${{ secrets.CUOPT_DOCKERHUB_TOKEN }} | ||
| - name: Copy License and Version files | ||
| run: | | ||
| cp ./LICENSE ./ci/docker/context/LICENSE | ||
| cp ./VERSION ./ci/docker/context/VERSION | ||
| cp ./thirdparty/THIRD_PARTY_LICENSES ./ci/docker/context/THIRD_PARTY_LICENSES | ||
| - name: Login to NGC | ||
| uses: docker/login-action@v3 | ||
| with: | ||
| registry: "nvcr.io" | ||
| username: "$oauthtoken" | ||
| password: ${{ secrets.CUOPT_NGC_DOCKER_KEY }} | ||
| - name: Set up Docker Context for Buildx | ||
| id: buildx-context | ||
| run: | | ||
| docker context create builders | ||
| - name: Set up Docker Buildx | ||
| uses: docker/setup-buildx-action@v3 | ||
| with: | ||
| driver: docker | ||
| endpoint: ./ci/docker/context | ||
| - name: Trim CUDA and Python versions | ||
| id: trim | ||
| run: | | ||
| echo "CUDA_SHORT=$(echo '${{ inputs.CUDA_VER }}' | sed -E 's/([0-9]+\.[0-9]+)\.[0-9]+/\1/')" >> $GITHUB_OUTPUT | ||
| echo "PYTHON_SHORT=$(echo '${{ inputs.PYTHON_VER }}' | sed -E 's/([0-9]+\.[0-9]+)\.[0-9]+/\1/')" >> $GITHUB_OUTPUT | ||
| - name: Build image and push to DockerHub and NGC | ||
| uses: docker/build-push-action@v6 | ||
| with: | ||
| context: ./ci/docker/context | ||
| file: ./ci/docker/Dockerfile | ||
| push: true | ||
| pull: true | ||
| build-args: | | ||
| CUDA_VER=${{ inputs.CUDA_VER }} | ||
| PYTHON_SHORT_VER=${{ steps.trim.outputs.PYTHON_SHORT }} | ||
| CUOPT_VER=${{ inputs.CUOPT_VER }} | ||
| LINUX_VER=${{ inputs.LINUX_VER }} | ||
| tags: nvidia/cuopt:${{ inputs.IMAGE_TAG_PREFIX }}-cuda${{ steps.trim.outputs.CUDA_SHORT }}-py${{ steps.trim.outputs.PYTHON_SHORT }}-${{ matrix.ARCH }} | ||
|
|
||
| - name: Push image to NGC | ||
| run: | | ||
| docker tag nvidia/cuopt:${{ inputs.IMAGE_TAG_PREFIX }}-cuda${{ steps.trim.outputs.CUDA_SHORT }}-py${{ steps.trim.outputs.PYTHON_SHORT }}-${{ matrix.ARCH }} nvcr.io/nvstaging/nvaie/cuopt:${{ inputs.IMAGE_TAG_PREFIX }}-cuda${{ steps.trim.outputs.CUDA_SHORT }}-py${{ steps.trim.outputs.PYTHON_SHORT }}-${{ matrix.ARCH }} | ||
| docker push nvcr.io/nvstaging/nvaie/cuopt:${{ inputs.IMAGE_TAG_PREFIX }}-cuda${{ steps.trim.outputs.CUDA_SHORT }}-py${{ steps.trim.outputs.PYTHON_SHORT }}-${{ matrix.ARCH }} | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,185 @@ | ||
| # SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | ||
| # SPDX-License-Identifier: Apache-2.0 | ||
| # | ||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||
| # you may not use this file except in compliance with the License. | ||
| # You may obtain a copy of the License at | ||
| # | ||
| # http://www.apache.org/licenses/LICENSE-2.0 | ||
| # | ||
| # Unless required by applicable law or agreed to in writing, software | ||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| # See the License for the specific language governing permissions and | ||
| # limitations under the License. | ||
|
|
||
| name: Build, Test and Publish cuopt images | ||
|
|
||
| on: | ||
| workflow_call: | ||
| inputs: | ||
| branch: | ||
| type: string | ||
| date: | ||
| type: string | ||
| sha: | ||
| type: string | ||
| build_type: | ||
| type: string | ||
| arch: | ||
| type: string | ||
| default: '["amd64", "arm64"]' | ||
| description: 'JSON array of architectures to build for' | ||
| cuda_ver: | ||
| type: string | ||
| default: '["12.8.0"]' | ||
| description: 'JSON array of CUDA versions to build for' | ||
| python_ver: | ||
| type: string | ||
| default: '["3.12.11"]' | ||
| description: 'JSON array of Python versions to build for' | ||
| linux_ver: | ||
| type: string | ||
| default: '["22.04"]' | ||
| description: 'JSON array of Linux versions to build for' | ||
|
|
||
|
|
||
| defaults: | ||
| run: | ||
| shell: bash | ||
|
|
||
| permissions: | ||
| actions: read | ||
| checks: none | ||
| contents: read | ||
| deployments: none | ||
| discussions: none | ||
| id-token: write | ||
| issues: none | ||
| packages: read | ||
| pages: none | ||
| pull-requests: read | ||
| repository-projects: none | ||
| security-events: none | ||
| statuses: none | ||
|
|
||
| jobs: | ||
| compute-matrix: | ||
| runs-on: ubuntu-latest | ||
| container: | ||
| image: rapidsai/ci-conda:25.08-latest | ||
| outputs: | ||
| MATRIX: ${{ steps.compute-matrix.outputs.MATRIX }} | ||
| CUOPT_VER: ${{ steps.compute-cuopt-ver.outputs.CUOPT_VER }} | ||
| IMAGE_TAG_PREFIX: ${{ steps.compute-cuopt-ver.outputs.IMAGE_TAG_PREFIX }} | ||
|
|
||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| fetch-depth: 0 # unshallow fetch for setuptools-scm | ||
| persist-credentials: false | ||
|
|
||
| - name: Compute matrix | ||
| id: compute-matrix | ||
| run: | | ||
| MATRIX=$(jq -c '.' <<EOF | ||
| { | ||
| "arch": ${{ inputs.arch }}, | ||
| "cuda_ver": ${{ inputs.cuda_ver }}, | ||
| "python_ver": ${{ inputs.python_ver }}, | ||
| "linux_ver": ${{ inputs.linux_ver }} | ||
| } | ||
| EOF | ||
| ) | ||
| echo "MATRIX=$MATRIX" >> $GITHUB_OUTPUT | ||
|
|
||
| - name: Install gha-tools | ||
| run: | | ||
| mkdir -p /tmp/gha-tools | ||
| curl -s -L 'https://github.com/rapidsai/gha-tools/releases/latest/download/tools.tar.gz' | tar -xz -C /tmp/gha-tools | ||
| echo "/tmp/gha-tools" >> "${GITHUB_PATH}" | ||
|
|
||
| - name: Compute cuopt version | ||
| id: compute-cuopt-ver | ||
| run: | | ||
| ver=$(rapids-generate-version) | ||
| # Remove starting 0s from version 25.08.0a18 -> 25.8.0a18 | ||
| CUOPT_VER=$(echo "$ver" | sed -E 's/\.0+([0-9])/\.\1/g') | ||
| echo "CUOPT_VER=$CUOPT_VER" >> $GITHUB_OUTPUT | ||
| if rapids-is-release-build; then | ||
| IMAGE_TAG_PREFIX="$CUOPT_VER" | ||
| else | ||
| IMAGE_TAG_PREFIX=$(echo "$CUOPT_VER" | sed -E 's/([0-9]+\.[0-9]+\.[0-9]+)a.*/\1a/') | ||
| fi | ||
| echo "IMAGE_TAG_PREFIX=$IMAGE_TAG_PREFIX" >> $GITHUB_OUTPUT | ||
|
|
||
| build-images: | ||
| name: Build images | ||
| needs: compute-matrix | ||
| secrets: inherit | ||
| strategy: | ||
| matrix: ${{ fromJson(needs.compute-matrix.outputs.MATRIX) }} | ||
| uses: ./.github/workflows/build_images.yaml | ||
| with: | ||
| ARCHES: ${{ matrix.arch }} | ||
| CUDA_VER: ${{ matrix.cuda_ver }} | ||
| CUOPT_VER: ${{ needs.compute-matrix.outputs.CUOPT_VER }} | ||
| IMAGE_TAG_PREFIX: ${{ needs.compute-matrix.outputs.IMAGE_TAG_PREFIX }} | ||
| LINUX_VER: ${{ matrix.linux_ver }} | ||
| PYTHON_VER: ${{ matrix.python_ver }} | ||
|
|
||
| build-cuopt-multiarch-manifest: | ||
| name: Build cuopt multiarch manifest | ||
| needs: [build-images, compute-matrix] | ||
| strategy: | ||
| matrix: | ||
| CUDA_VER: ${{ fromJson(needs.compute-matrix.outputs.MATRIX).cuda_ver }} | ||
| PYTHON_VER: ${{ fromJson(needs.compute-matrix.outputs.MATRIX).python_ver }} | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Checkout code repo | ||
| uses: actions/checkout@v4 | ||
| with: | ||
| fetch-depth: 0 | ||
| - name: Login to DockerHub | ||
| uses: docker/login-action@v3 | ||
| with: | ||
| username: ${{ secrets.CUOPT_DOCKERHUB_USERNAME }} | ||
| password: ${{ secrets.CUOPT_DOCKERHUB_TOKEN }} | ||
| - name: Login to NGC | ||
| uses: docker/login-action@v3 | ||
| with: | ||
| registry: "nvcr.io" | ||
| username: "$oauthtoken" | ||
| password: ${{ secrets.CUOPT_NGC_DOCKER_KEY }} | ||
| - name: Trim CUDA and Python versions | ||
| id: trim | ||
| run: | | ||
| echo "CUDA_SHORT=$(echo '${{ matrix.CUDA_VER }}' | sed -E 's/([0-9]+\.[0-9]+)\.[0-9]+/\1/')" >> $GITHUB_OUTPUT | ||
| echo "PYTHON_SHORT=$(echo '${{ matrix.PYTHON_VER }}' | sed -E 's/([0-9]+\.[0-9]+)\.[0-9]+/\1/')" >> $GITHUB_OUTPUT | ||
| - name: Create multiarch manifest | ||
| shell: bash | ||
| env: | ||
| CUOPT_VER: ${{ needs.compute-matrix.outputs.CUOPT_VER }} | ||
| CUDA_SHORT: ${{ steps.trim.outputs.CUDA_SHORT }} | ||
| PYTHON_SHORT: ${{ steps.trim.outputs.PYTHON_SHORT }} | ||
| IMAGE_TAG_PREFIX: ${{ needs.compute-matrix.outputs.IMAGE_TAG_PREFIX }} | ||
| BUILD_TYPE: ${{ inputs.build_type }} | ||
| run: bash ci/docker/create_multiarch_manifest.sh | ||
|
|
||
| test-images: | ||
| name: Test images | ||
| needs: [build-cuopt-multiarch-manifest, compute-matrix] | ||
| secrets: inherit | ||
| strategy: | ||
| matrix: | ||
| CUDA_VER: ${{ fromJson(needs.compute-matrix.outputs.MATRIX).cuda_ver }} | ||
| PYTHON_VER: ${{ fromJson(needs.compute-matrix.outputs.MATRIX).python_ver }} | ||
| ARCH: ${{ fromJson(needs.compute-matrix.outputs.MATRIX).arch }} | ||
| uses: ./.github/workflows/test_images.yaml | ||
| with: | ||
| ARCH: ${{ matrix.ARCH }} | ||
| CUDA_VER: ${{ matrix.CUDA_VER }} | ||
| PYTHON_VER: ${{ matrix.PYTHON_VER }} | ||
| IMAGE_TAG_PREFIX: ${{ needs.compute-matrix.outputs.IMAGE_TAG_PREFIX }} |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.