Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
b7457e0
Add version change
ramakrishnap-nv Jul 1, 2025
2c83df0
Add workflow to build image
ramakrishnap-nv Jul 1, 2025
49f4095
add docker folder and update yml
ramakrishnap-nv Jul 1, 2025
369d079
Update dockerfile
ramakrishnap-nv Jul 2, 2025
23a34eb
Update workflow
ramakrishnap-nv Jul 2, 2025
3757392
Merge branch 'branch-25.08' into add_nightly_container_support
ramakrishnap-nv Jul 2, 2025
48544e1
Add changes to accomdate image tag
ramakrishnap-nv Jul 2, 2025
0efc4b7
Merge branch 'add_nightly_container_support' of github.com:rgsl888pra…
ramakrishnap-nv Jul 2, 2025
3968704
Add multi arch script
ramakrishnap-nv Jul 2, 2025
de1e24e
Add multi arch script
ramakrishnap-nv Jul 2, 2025
6ddf3a7
enable nightly build
ramakrishnap-nv Jul 3, 2025
812d751
test nightly
ramakrishnap-nv Jul 3, 2025
be5f42c
fix
ramakrishnap-nv Jul 3, 2025
e9dad7f
test workflow
ramakrishnap-nv Jul 3, 2025
80bc564
test workflow
ramakrishnap-nv Jul 3, 2025
bfdb580
reconfigure test
ramakrishnap-nv Jul 3, 2025
b9b76f2
fix workflow type
ramakrishnap-nv Jul 3, 2025
8770f90
name changes
ramakrishnap-nv Jul 3, 2025
aa077e0
name update
ramakrishnap-nv Jul 3, 2025
6df3fc6
fix workflow
ramakrishnap-nv Jul 3, 2025
ab66e7b
fix errors
ramakrishnap-nv Jul 3, 2025
9b8870b
fix errors
ramakrishnap-nv Jul 3, 2025
a3b2106
fix error
ramakrishnap-nv Jul 3, 2025
2c527d3
fix error[A
ramakrishnap-nv Jul 3, 2025
9bb6ec5
fix error
ramakrishnap-nv Jul 3, 2025
df5c2b8
fix error
ramakrishnap-nv Jul 3, 2025
f55ba0a
fix error
ramakrishnap-nv Jul 3, 2025
fb70698
fix error
ramakrishnap-nv Jul 3, 2025
5109fe5
fix error
ramakrishnap-nv Jul 3, 2025
a5548f8
fix
ramakrishnap-nv Jul 3, 2025
b0aa963
fix image
ramakrishnap-nv Jul 3, 2025
9a6b3eb
fix image
ramakrishnap-nv Jul 3, 2025
ee88039
fix image
ramakrishnap-nv Jul 3, 2025
cd28dc5
fix image
ramakrishnap-nv Jul 3, 2025
caace75
fix image
ramakrishnap-nv Jul 3, 2025
3dfaad3
fix image
ramakrishnap-nv Jul 3, 2025
65655f2
fix image
ramakrishnap-nv Jul 3, 2025
3dc77a7
create a context folder and setup context
ramakrishnap-nv Jul 3, 2025
c750458
create a context folder and setup context
ramakrishnap-nv Jul 3, 2025
c97b9be
fix context
ramakrishnap-nv Jul 3, 2025
4dfdfb4
fix version
ramakrishnap-nv Jul 3, 2025
55600a7
fix branch name quotes
ramakrishnap-nv Jul 3, 2025
7749150
fix manifest
ramakrishnap-nv Jul 3, 2025
1441318
fix manifest job
ramakrishnap-nv Jul 3, 2025
92f3ec7
fix manifest
ramakrishnap-nv Jul 7, 2025
272d12a
fix manifest
ramakrishnap-nv Jul 7, 2025
fab26a4
fix manifest
ramakrishnap-nv Jul 7, 2025
1ab9265
fix docker image names and manifest
ramakrishnap-nv Jul 7, 2025
89c5f49
fix image
ramakrishnap-nv Jul 7, 2025
623e7c6
fix image
ramakrishnap-nv Jul 7, 2025
b26ce5d
fix image names
ramakrishnap-nv Jul 7, 2025
8c94fed
fix image names
ramakrishnap-nv Jul 7, 2025
67f6a4e
update workflows
ramakrishnap-nv Jul 7, 2025
5f38cd8
update workflow
ramakrishnap-nv Jul 7, 2025
ef09b4d
Add copyright
ramakrishnap-nv Jul 7, 2025
6e60a2d
Add testing
ramakrishnap-nv Jul 7, 2025
d7c9b1c
Testing container
ramakrishnap-nv Jul 7, 2025
a41f9a3
update test yaml
ramakrishnap-nv Jul 7, 2025
155310a
update test yaml
ramakrishnap-nv Jul 7, 2025
b20b3bf
update test yaml
ramakrishnap-nv Jul 7, 2025
0836421
update test yaml
ramakrishnap-nv Jul 7, 2025
e48aa05
update test yaml
ramakrishnap-nv Jul 7, 2025
589dfec
update test yaml
ramakrishnap-nv Jul 7, 2025
efba520
update test yaml
ramakrishnap-nv Jul 7, 2025
a73c809
update test yaml
ramakrishnap-nv Jul 7, 2025
8ca1e5d
update test yaml
ramakrishnap-nv Jul 7, 2025
ee0236e
update test yaml
ramakrishnap-nv Jul 7, 2025
9034cf3
update test yaml
ramakrishnap-nv Jul 7, 2025
8fcd63b
update test yaml
ramakrishnap-nv Jul 7, 2025
de306f1
update test yaml
ramakrishnap-nv Jul 8, 2025
d9a1243
update test yaml
ramakrishnap-nv Jul 8, 2025
5744e79
update test yaml
ramakrishnap-nv Jul 8, 2025
d97d8a8
update test yaml
ramakrishnap-nv Jul 8, 2025
f965aa8
Add debug
ramakrishnap-nv Jul 8, 2025
78b043e
Add debug
ramakrishnap-nv Jul 8, 2025
95bc449
fix debug
ramakrishnap-nv Jul 8, 2025
685eac5
debug
ramakrishnap-nv Jul 8, 2025
4a54a31
debug
ramakrishnap-nv Jul 8, 2025
e80e8a3
enable python path
ramakrishnap-nv Jul 8, 2025
d040fc0
update workflow
ramakrishnap-nv Jul 8, 2025
f189f59
update
ramakrishnap-nv Jul 8, 2025
ba609c7
update
ramakrishnap-nv Jul 8, 2025
9d2001d
python commit
ramakrishnap-nv Jul 8, 2025
6ee65c3
change HOME
ramakrishnap-nv Jul 8, 2025
a51a7f7
change HOME
ramakrishnap-nv Jul 8, 2025
20744e8
utils
ramakrishnap-nv Jul 8, 2025
3073554
update utils
ramakrishnap-nv Jul 8, 2025
bd5a624
update utils
ramakrishnap-nv Jul 8, 2025
cdf2e75
new changes
ramakrishnap-nv Jul 8, 2025
bb89f2e
fix issues
ramakrishnap-nv Jul 8, 2025
67db1aa
fix issues
ramakrishnap-nv Jul 8, 2025
36ce08f
test all
ramakrishnap-nv Jul 9, 2025
c444d90
fix cli test and remove exhaustive testing
ramakrishnap-nv Jul 9, 2025
a158339
Add fix to testing
ramakrishnap-nv Jul 9, 2025
2d552c9
enable all the tests
ramakrishnap-nv Jul 9, 2025
a3742bc
update
ramakrishnap-nv Jul 9, 2025
fe4be7f
update
ramakrishnap-nv Jul 10, 2025
38f2177
Update
ramakrishnap-nv Jul 10, 2025
9327151
change name
ramakrishnap-nv Jul 10, 2025
edfd72b
test with complete workflow
ramakrishnap-nv Jul 10, 2025
d36ffb1
fix issue
ramakrishnap-nv Jul 10, 2025
0f0b797
fix testing and docker file
ramakrishnap-nv Jul 10, 2025
db00b53
fix PR
ramakrishnap-nv Jul 10, 2025
28096a9
fix style
ramakrishnap-nv Jul 11, 2025
fee1a48
Merge github.com:nvidia/cuopt into add_nightly_container_support
ramakrishnap-nv Jul 11, 2025
65234a9
remove debug and update README
ramakrishnap-nv Jul 11, 2025
f0afd7e
remove stale files and update license header
ramakrishnap-nv Jul 11, 2025
51f58b1
Add missing file
ramakrishnap-nv Jul 11, 2025
07c6a68
Update license
ramakrishnap-nv Jul 11, 2025
98887c1
fix style
ramakrishnap-nv Jul 11, 2025
c234a70
remove debug
ramakrishnap-nv Jul 11, 2025
5528353
fix style
ramakrishnap-nv Jul 11, 2025
cc20c7f
Update docker to accept PYTHON_SHORT_VER arg
ramakrishnap-nv Jul 14, 2025
9248e65
Address review comments
ramakrishnap-nv Jul 15, 2025
51a4fad
test
ramakrishnap-nv Jul 15, 2025
c8d3808
Add new line
ramakrishnap-nv Jul 15, 2025
4530995
fix Docker file
ramakrishnap-nv Jul 15, 2025
81e3c3b
fix gcc requirement
ramakrishnap-nv Jul 15, 2025
757da9c
fix testing
ramakrishnap-nv Jul 15, 2025
0949da0
revert cahnges to pr
ramakrishnap-nv Jul 15, 2025
3f7d167
Merge branch 'branch-25.08' into add_nightly_container_support
ramakrishnap-nv Jul 17, 2025
48f0c15
Merge github.com:nvidia/cuopt into add_nightly_container_support
ramakrishnap-nv Jul 18, 2025
9f9a322
style
ramakrishnap-nv Jul 18, 2025
454b6e7
fix style
ramakrishnap-nv Jul 18, 2025
b1de01b
update
ramakrishnap-nv Jul 21, 2025
898dffc
Merge branch 'branch-25.08' into add_nightly_container_support
ramakrishnap-nv Jul 21, 2025
9d6a7f5
Polish and remove gcc at the end
ramakrishnap-nv Jul 22, 2025
2fd0755
Merge branch 'add_nightly_container_support' of github.com:rgsl888pra…
ramakrishnap-nv Jul 22, 2025
563871a
add third party license to container
ramakrishnap-nv Jul 22, 2025
7219e46
remove unwated changes
ramakrishnap-nv Jul 22, 2025
6d5e14b
accept matrix data as input in workflow
ramakrishnap-nv Jul 24, 2025
303a73f
address review comments and testing
ramakrishnap-nv Jul 24, 2025
f530e5f
add docker contex folder
ramakrishnap-nv Jul 24, 2025
f1bdf17
move gcc purge down
ramakrishnap-nv Jul 24, 2025
3d3c84d
revert testing
ramakrishnap-nv Jul 24, 2025
1fe2e09
fix style
ramakrishnap-nv Jul 24, 2025
25a7d1d
Merge branch 'branch-25.08' into add_nightly_container_support
ramakrishnap-nv Jul 24, 2025
97512f1
Update test_image.sh
ramakrishnap-nv Jul 24, 2025
0275741
address review comments
ramakrishnap-nv Jul 25, 2025
e5f1248
Merge branch 'add_nightly_container_support' of github.com:rgsl888pra…
ramakrishnap-nv Jul 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 9 additions & 20 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -207,23 +207,12 @@ jobs:
date: ${{ inputs.date }}
package-name: cuopt_sh_client
package-type: python
service-container:
if: inputs.build_type == 'nightly'
needs: [wheel-build-cuopt, wheel-build-cuopt-server]
runs-on: ubuntu-latest
steps:
- name: Checkout code repo
uses: actions/checkout@v3
with:
ref: ${{ inputs.sha }}
fetch-depth: 0 # unshallow fetch for setuptools-scm
persist-credentials: false
- name: build service
env:
GH_TOKEN: ${{ github.token }}
run: |
gh workflow run service_nightly.yaml \
-f branch=${{ inputs.branch }} \
-f sha=${{ inputs.sha }} \
-f date=${{ inputs.date }} \
-f build_type=${{ inputs.build_type }}
build-images:
needs: [wheel-publish-cuopt, wheel-publish-cuopt-server]
uses: ./.github/workflows/build_test_publish_images.yaml
secrets: inherit
with:
branch: ${{ inputs.branch }}
sha: ${{ inputs.sha }}
date: ${{ inputs.date }}
build_type: ${{ inputs.build_type || 'branch' }}
102 changes: 102 additions & 0 deletions .github/workflows/build_images.yaml
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 }}
Comment thread
ramakrishnap-nv marked this conversation as resolved.

- 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 }}
185 changes: 185 additions & 0 deletions .github/workflows/build_test_publish_images.yaml
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 }}
Loading
Loading