Skip to content

Commit 8927106

Browse files
committed
create build outputs for each CUDA version
1 parent 5267bce commit 8927106

2 files changed

Lines changed: 83 additions & 96 deletions

File tree

.github/workflows/build-and-push-image.yml

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ name: Build and push image
33
on:
44
workflow_call:
55
inputs:
6-
cuda:
7-
type: string
8-
required: true
96
file:
107
type: string
118
required: true
@@ -62,10 +59,14 @@ on:
6259
GPUCIBOT_DOCKERHUB_TOKEN:
6360
required: false
6461
outputs:
65-
amd64:
66-
value: "${{ jobs.build.outputs.amd64 }}"
67-
arm64:
68-
value: "${{ jobs.build.outputs.arm64 }}"
62+
amd64_cuda12_9_1:
63+
value: "${{ jobs.build.outputs.amd64_cuda12_9_1 }}"
64+
arm64_cuda12_9_1:
65+
value: "${{ jobs.build.outputs.arm64_cuda12_9_1 }}"
66+
amd64_cuda13_1_1:
67+
value: "${{ jobs.build.outputs.amd64_cuda13_1_1 }}"
68+
arm64_cuda13_1_1:
69+
value: "${{ jobs.build.outputs.arm64_cuda13_1_1 }}"
6970

7071
permissions:
7172
actions: none
@@ -89,6 +90,7 @@ jobs:
8990
fail-fast: true
9091
matrix:
9192
ARCH: ["amd64", "arm64"]
93+
CUDA: ["12.9.1", "13.1.1"]
9294
outputs:
9395
amd64: ${{ steps.result.outputs.amd64 }}
9496
arm64: ${{ steps.result.outputs.arm64 }}
@@ -102,7 +104,7 @@ jobs:
102104
- name: Dump runner context
103105
shell: bash --noprofile --norc -eo pipefail {0}
104106
env:
105-
CUDA: "${{ inputs.cuda }}"
107+
CUDA: "${{ matrix.CUDA }}"
106108
run: | # zizmor: ignore[template-injection]
107109
echo "${{ toJSON(runner) }}";
108110
echo "CUDA_VERSION_MAJOR=$(cut -d'.' -f1 <<< "${CUDA}")" >> "$GITHUB_ENV"
@@ -167,7 +169,7 @@ jobs:
167169
- name: Set environment variables
168170
shell: bash --noprofile --norc -eo pipefail {0}
169171
env:
170-
CUDA: "${{ inputs.cuda }}"
172+
CUDA: "${{ matrix.CUDA }}"
171173
LINUX: "${{ env.LINUX }}"
172174
NODE: "${{ inputs.node-version }}"
173175
IMAGE_MID: "node${{ inputs.node-version }}-cuda${{ env.CUDA_VERSION_MAJOR }}-${{ env.LINUX }}"
@@ -283,6 +285,7 @@ jobs:
283285
shell: bash --noprofile --norc -eo pipefail {0}
284286
env:
285287
ARCH: ${{ matrix.ARCH }}
288+
CUDA: ${{ matrix.CUDA }}
286289
REPOSITORY_PREFIX: ${{ env.REGISTRY }}/${{ github.repository_owner }}
287290
STEPS_BUILD_OUTPUTS_DIGEST_AMD64: ${{ steps.build.outputs.digest_amd64 }}
288291
STEPS_BUILD_OUTPUTS_DIGEST_ARM64: ${{ steps.build.outputs.digest_arm64 }}
@@ -293,7 +296,7 @@ jobs:
293296
DIGEST="${STEPS_BUILD_OUTPUTS_DIGEST_ARM64}"
294297
fi
295298
cat <<EOF >> "$GITHUB_OUTPUT"
296-
${ARCH}={"digest":"${DIGEST}","name":"${IMAGE_NAME}","repo":"${REPOSITORY#${REPOSITORY_PREFIX}/}","tag":"${IMAGE_TAG}"}
299+
${ARCH}_cuda${CUDA//./_}={"digest":"${DIGEST}","name":"${IMAGE_NAME}","repo":"${REPOSITORY#${REPOSITORY_PREFIX}/}","tag":"${IMAGE_TAG}"}
297300
EOF
298301
299302
push:
@@ -314,9 +317,13 @@ jobs:
314317
- name: Create manifest in ${{ env.REGISTRY }}
315318
shell: bash --noprofile --norc -eo pipefail {0}
316319
env:
317-
IMAGE_NAME: ${{ fromJSON(needs.build.outputs.amd64).name }}
318-
AMD64_HASH: ${{ fromJSON(needs.build.outputs.amd64).digest }}
319-
ARM64_HASH: ${{ fromJSON(needs.build.outputs.arm64).digest }}
320-
# Create the multiarch manifest
320+
IMAGE_NAME_CUDA_12_9_1: ${{ fromJSON(needs.build.outputs.amd64_cuda12_9_1).name }}
321+
IMAGE_NAME_CUDA_13_1_1: ${{ fromJSON(needs.build.outputs.amd64_cuda13_1_1).name }}
322+
AMD64_CUDA_12_9_1_HASH: ${{ fromJSON(needs.build.outputs.amd64_cuda12_9_1).digest }}
323+
ARM64_CUDA_12_9_1_HASH: ${{ fromJSON(needs.build.outputs.arm64_cuda12_9_1).digest }}
324+
AMD64_CUDA_13_1_1_HASH: ${{ fromJSON(needs.build.outputs.amd64_cuda13_1_1).digest }}
325+
ARM64_CUDA_13_1_1_HASH: ${{ fromJSON(needs.build.outputs.arm64_cuda13_1_1).digest }}
326+
# Create the multiarch manifests
321327
run: |
322-
docker buildx imagetools create --tag "$IMAGE_NAME" "$AMD64_HASH" "$ARM64_HASH"
328+
docker buildx imagetools create --tag "$IMAGE_NAME_CUDA_12_9_1" "$AMD64_CUDA_12_9_1_HASH" "$ARM64_CUDA_12_9_1_HASH"
329+
docker buildx imagetools create --tag "$IMAGE_NAME_CUDA_13_1_1" "$AMD64_CUDA_13_1_1_HASH" "$ARM64_CUDA_13_1_1_HASH"

.github/workflows/merge.pr.yml

Lines changed: 61 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,7 @@ jobs:
3434
GPUCIBOT_DOCKERHUB_USER: ${{ secrets.GPUCIBOT_DOCKERHUB_USER }}
3535
GPUCIBOT_DOCKERHUB_TOKEN: ${{ secrets.GPUCIBOT_DOCKERHUB_TOKEN }}
3636
SCCACHE_GH_PAT: ${{ secrets.SCCACHE_GH_PAT }}
37-
strategy:
38-
fail-fast: true
39-
matrix:
40-
cuda: ["12.9.1", "13.1.1"]
4137
with:
42-
cuda: ${{ matrix.cuda }}
4338
image: devel-main
4439
file: dev/dockerfiles/devel/main.Dockerfile
4540
manual-build: ${{ github.event_name == 'workflow_dispatch' }}
@@ -57,12 +52,7 @@ jobs:
5752
GPUCIBOT_DOCKERHUB_USER: ${{ secrets.GPUCIBOT_DOCKERHUB_USER }}
5853
GPUCIBOT_DOCKERHUB_TOKEN: ${{ secrets.GPUCIBOT_DOCKERHUB_TOKEN }}
5954
SCCACHE_GH_PAT: ${{ secrets.SCCACHE_GH_PAT }}
60-
strategy:
61-
fail-fast: true
62-
matrix:
63-
cuda: ["12.9.1", "13.1.1"]
6455
with:
65-
cuda: ${{ matrix.cuda }}
6656
from_: devel-main
6757
image: devel-packages
6858
file: dev/dockerfiles/devel/package.Dockerfile
@@ -83,12 +73,7 @@ jobs:
8373
GPUCIBOT_DOCKERHUB_USER: ${{ secrets.GPUCIBOT_DOCKERHUB_USER }}
8474
GPUCIBOT_DOCKERHUB_TOKEN: ${{ secrets.GPUCIBOT_DOCKERHUB_TOKEN }}
8575
SCCACHE_GH_PAT: ${{ secrets.SCCACHE_GH_PAT }}
86-
strategy:
87-
fail-fast: true
88-
matrix:
89-
cuda: ["12.9.1", "13.1.1"]
9076
with:
91-
cuda: ${{ matrix.cuda }}
9277
image: runtime-base
9378
devel: devel-main
9479
file: dev/dockerfiles/runtime/base.Dockerfile
@@ -106,12 +91,7 @@ jobs:
10691
GPUCIBOT_DOCKERHUB_USER: ${{ secrets.GPUCIBOT_DOCKERHUB_USER }}
10792
GPUCIBOT_DOCKERHUB_TOKEN: ${{ secrets.GPUCIBOT_DOCKERHUB_TOKEN }}
10893
SCCACHE_GH_PAT: ${{ secrets.SCCACHE_GH_PAT }}
109-
strategy:
110-
fail-fast: true
111-
matrix:
112-
cuda: ["12.9.1", "13.1.1"]
11394
with:
114-
cuda: ${{ matrix.cuda }}
11595
from_: runtime-base
11696
image: runtime-cudf
11797
build: devel-packages
@@ -132,12 +112,7 @@ jobs:
132112
GPUCIBOT_DOCKERHUB_USER: ${{ secrets.GPUCIBOT_DOCKERHUB_USER }}
133113
GPUCIBOT_DOCKERHUB_TOKEN: ${{ secrets.GPUCIBOT_DOCKERHUB_TOKEN }}
134114
SCCACHE_GH_PAT: ${{ secrets.SCCACHE_GH_PAT }}
135-
strategy:
136-
fail-fast: true
137-
matrix:
138-
cuda: ["12.9.1", "13.1.1"]
139115
with:
140-
cuda: ${{ matrix.cuda }}
141116
from_: runtime-base
142117
image: runtime-cuml
143118
build: devel-packages
@@ -158,12 +133,7 @@ jobs:
158133
GPUCIBOT_DOCKERHUB_USER: ${{ secrets.GPUCIBOT_DOCKERHUB_USER }}
159134
GPUCIBOT_DOCKERHUB_TOKEN: ${{ secrets.GPUCIBOT_DOCKERHUB_TOKEN }}
160135
SCCACHE_GH_PAT: ${{ secrets.SCCACHE_GH_PAT }}
161-
strategy:
162-
fail-fast: true
163-
matrix:
164-
cuda: ["12.9.1", "13.1.1"]
165136
with:
166-
cuda: ${{ matrix.cuda }}
167137
from_: runtime-base
168138
image: runtime-cugraph
169139
build: devel-packages
@@ -184,12 +154,7 @@ jobs:
184154
GPUCIBOT_DOCKERHUB_USER: ${{ secrets.GPUCIBOT_DOCKERHUB_USER }}
185155
GPUCIBOT_DOCKERHUB_TOKEN: ${{ secrets.GPUCIBOT_DOCKERHUB_TOKEN }}
186156
SCCACHE_GH_PAT: ${{ secrets.SCCACHE_GH_PAT }}
187-
strategy:
188-
fail-fast: true
189-
matrix:
190-
cuda: ["12.9.1", "13.1.1"]
191157
with:
192-
cuda: ${{ matrix.cuda }}
193158
from_: runtime-base
194159
image: runtime-cuspatial
195160
build: devel-packages
@@ -210,12 +175,7 @@ jobs:
210175
GPUCIBOT_DOCKERHUB_USER: ${{ secrets.GPUCIBOT_DOCKERHUB_USER }}
211176
GPUCIBOT_DOCKERHUB_TOKEN: ${{ secrets.GPUCIBOT_DOCKERHUB_TOKEN }}
212177
SCCACHE_GH_PAT: ${{ secrets.SCCACHE_GH_PAT }}
213-
strategy:
214-
fail-fast: true
215-
matrix:
216-
cuda: ["12.9.1", "13.1.1"]
217178
with:
218-
cuda: ${{ matrix.cuda }}
219179
from_: runtime-base
220180
image: runtime-glfw
221181
build: devel-packages
@@ -236,12 +196,7 @@ jobs:
236196
GPUCIBOT_DOCKERHUB_USER: ${{ secrets.GPUCIBOT_DOCKERHUB_USER }}
237197
GPUCIBOT_DOCKERHUB_TOKEN: ${{ secrets.GPUCIBOT_DOCKERHUB_TOKEN }}
238198
SCCACHE_GH_PAT: ${{ secrets.SCCACHE_GH_PAT }}
239-
strategy:
240-
fail-fast: true
241-
matrix:
242-
cuda: ["12.9.1", "13.1.1"]
243199
with:
244-
cuda: ${{ matrix.cuda }}
245200
from_: runtime-base
246201
image: runtime-main
247202
build: devel-packages
@@ -264,12 +219,7 @@ jobs:
264219
GPUCIBOT_DOCKERHUB_USER: ${{ secrets.GPUCIBOT_DOCKERHUB_USER }}
265220
GPUCIBOT_DOCKERHUB_TOKEN: ${{ secrets.GPUCIBOT_DOCKERHUB_TOKEN }}
266221
SCCACHE_GH_PAT: ${{ secrets.SCCACHE_GH_PAT }}
267-
strategy:
268-
fail-fast: true
269-
matrix:
270-
cuda: ["12.9.1", "13.1.1"]
271222
with:
272-
cuda: ${{ matrix.cuda }}
273223
from_: runtime-base
274224
image: runtime-demo
275225
build: devel-packages
@@ -297,39 +247,69 @@ jobs:
297247
- build-and-publish-runtime-main-image
298248
- build-and-publish-runtime-demo-image
299249
env:
300-
repo: ${{ fromJSON(needs.build-and-publish-devel-main-image.amd64).repo }}
250+
repo: ${{ fromJSON(needs.build-and-publish-devel-main-image.amd64_cuda12_9_1).repo }}
301251
tags: >
302-
${{ fromJSON(needs.build-and-publish-devel-main-image.amd64).tag }}
303-
${{ fromJSON(needs.build-and-publish-devel-packages-image.amd64).tag }}
304-
${{ fromJSON(needs.build-and-publish-runtime-cuda-base-image.amd64).tag }}
305-
${{ fromJSON(needs.build-and-publish-runtime-cudf-image.amd64).tag }}
306-
${{ fromJSON(needs.build-and-publish-runtime-cuml-image.amd64).tag }}
307-
${{ fromJSON(needs.build-and-publish-runtime-cugraph-image.amd64).tag }}
308-
${{ fromJSON(needs.build-and-publish-runtime-cuspatial-image.amd64).tag }}
309-
${{ fromJSON(needs.build-and-publish-runtime-glfw-image.amd64).tag }}
310-
${{ fromJSON(needs.build-and-publish-runtime-main-image.amd64).tag }}
311-
${{ fromJSON(needs.build-and-publish-runtime-demo-image.amd64).tag }}
252+
${{ fromJSON(needs.build-and-publish-devel-main-image.amd64_cuda12_9_1).tag }}
253+
${{ fromJSON(needs.build-and-publish-devel-packages-image.amd64_cuda12_9_1).tag }}
254+
${{ fromJSON(needs.build-and-publish-runtime-cuda-base-image.amd64_cuda12_9_1).tag }}
255+
${{ fromJSON(needs.build-and-publish-runtime-cudf-image.amd64_cuda12_9_1).tag }}
256+
${{ fromJSON(needs.build-and-publish-runtime-cuml-image.amd64_cuda12_9_1).tag }}
257+
${{ fromJSON(needs.build-and-publish-runtime-cugraph-image.amd64_cuda12_9_1).tag }}
258+
${{ fromJSON(needs.build-and-publish-runtime-cuspatial-image.amd64_cuda12_9_1).tag }}
259+
${{ fromJSON(needs.build-and-publish-runtime-glfw-image.amd64_cuda12_9_1).tag }}
260+
${{ fromJSON(needs.build-and-publish-runtime-main-image.amd64_cuda12_9_1).tag }}
261+
${{ fromJSON(needs.build-and-publish-runtime-demo-image.amd64_cuda12_9_1).tag }}
262+
${{ fromJSON(needs.build-and-publish-devel-main-image.amd64_cuda13_1_1).tag }}
263+
${{ fromJSON(needs.build-and-publish-devel-packages-image.amd64_cuda13_1_1).tag }}
264+
${{ fromJSON(needs.build-and-publish-runtime-cuda-base-image.amd64_cuda13_1_1).tag }}
265+
${{ fromJSON(needs.build-and-publish-runtime-cudf-image.amd64_cuda13_1_1).tag }}
266+
${{ fromJSON(needs.build-and-publish-runtime-cuml-image.amd64_cuda13_1_1).tag }}
267+
${{ fromJSON(needs.build-and-publish-runtime-cugraph-image.amd64_cuda13_1_1).tag }}
268+
${{ fromJSON(needs.build-and-publish-runtime-cuspatial-image.amd64_cuda13_1_1).tag }}
269+
${{ fromJSON(needs.build-and-publish-runtime-glfw-image.amd64_cuda13_1_1).tag }}
270+
${{ fromJSON(needs.build-and-publish-runtime-main-image.amd64_cuda13_1_1).tag }}
271+
${{ fromJSON(needs.build-and-publish-runtime-demo-image.amd64_cuda13_1_1).tag }}
312272
digests: >
313-
${{ fromJSON(needs.build-and-publish-devel-main-image.amd64).digest }}
314-
${{ fromJSON(needs.build-and-publish-devel-main-image.arm64).digest }}
315-
${{ fromJSON(needs.build-and-publish-devel-packages-image.amd64).digest }}
316-
${{ fromJSON(needs.build-and-publish-devel-packages-image.arm64).digest }}
317-
${{ fromJSON(needs.build-and-publish-runtime-cuda-base-image.amd64).digest }}
318-
${{ fromJSON(needs.build-and-publish-runtime-cuda-base-image.arm64).digest }}
319-
${{ fromJSON(needs.build-and-publish-runtime-cudf-image.amd64).digest }}
320-
${{ fromJSON(needs.build-and-publish-runtime-cudf-image.arm64).digest }}
321-
${{ fromJSON(needs.build-and-publish-runtime-cuml-image.amd64).digest }}
322-
${{ fromJSON(needs.build-and-publish-runtime-cuml-image.arm64).digest }}
323-
${{ fromJSON(needs.build-and-publish-runtime-cugraph-image.amd64).digest }}
324-
${{ fromJSON(needs.build-and-publish-runtime-cugraph-image.arm64).digest }}
325-
${{ fromJSON(needs.build-and-publish-runtime-cuspatial-image.amd64).digest }}
326-
${{ fromJSON(needs.build-and-publish-runtime-cuspatial-image.arm64).digest }}
327-
${{ fromJSON(needs.build-and-publish-runtime-glfw-image.amd64).digest }}
328-
${{ fromJSON(needs.build-and-publish-runtime-glfw-image.arm64).digest }}
329-
${{ fromJSON(needs.build-and-publish-runtime-main-image.amd64).digest }}
330-
${{ fromJSON(needs.build-and-publish-runtime-main-image.arm64).digest }}
331-
${{ fromJSON(needs.build-and-publish-runtime-demo-image.amd64).digest }}
332-
${{ fromJSON(needs.build-and-publish-runtime-demo-image.arm64).digest }}
273+
${{ fromJSON(needs.build-and-publish-devel-main-image.amd64_cuda12_9_1).digest }}
274+
${{ fromJSON(needs.build-and-publish-devel-main-image.arm64_cuda12_9_1).digest }}
275+
${{ fromJSON(needs.build-and-publish-devel-packages-image.amd64_cuda12_9_1).digest }}
276+
${{ fromJSON(needs.build-and-publish-devel-packages-image.arm64_cuda12_9_1).digest }}
277+
${{ fromJSON(needs.build-and-publish-runtime-cuda-base-image.amd64_cuda12_9_1).digest }}
278+
${{ fromJSON(needs.build-and-publish-runtime-cuda-base-image.arm64_cuda12_9_1).digest }}
279+
${{ fromJSON(needs.build-and-publish-runtime-cudf-image.amd64_cuda12_9_1).digest }}
280+
${{ fromJSON(needs.build-and-publish-runtime-cudf-image.arm64_cuda12_9_1).digest }}
281+
${{ fromJSON(needs.build-and-publish-runtime-cuml-image.amd64_cuda12_9_1).digest }}
282+
${{ fromJSON(needs.build-and-publish-runtime-cuml-image.arm64_cuda12_9_1).digest }}
283+
${{ fromJSON(needs.build-and-publish-runtime-cugraph-image.amd64_cuda12_9_1).digest }}
284+
${{ fromJSON(needs.build-and-publish-runtime-cugraph-image.arm64_cuda12_9_1).digest }}
285+
${{ fromJSON(needs.build-and-publish-runtime-cuspatial-image.amd64_cuda12_9_1).digest }}
286+
${{ fromJSON(needs.build-and-publish-runtime-cuspatial-image.arm64_cuda12_9_1).digest }}
287+
${{ fromJSON(needs.build-and-publish-runtime-glfw-image.amd64_cuda12_9_1).digest }}
288+
${{ fromJSON(needs.build-and-publish-runtime-glfw-image.arm64_cuda12_9_1).digest }}
289+
${{ fromJSON(needs.build-and-publish-runtime-main-image.amd64_cuda12_9_1).digest }}
290+
${{ fromJSON(needs.build-and-publish-runtime-main-image.arm64_cuda12_9_1).digest }}
291+
${{ fromJSON(needs.build-and-publish-runtime-demo-image.amd64_cuda12_9_1).digest }}
292+
${{ fromJSON(needs.build-and-publish-runtime-demo-image.arm64_cuda12_9_1).digest }}
293+
${{ fromJSON(needs.build-and-publish-devel-main-image.amd64_cuda13_1_1).digest }}
294+
${{ fromJSON(needs.build-and-publish-devel-main-image.arm64_cuda13_1_1).digest }}
295+
${{ fromJSON(needs.build-and-publish-devel-packages-image.amd64_cuda13_1_1).digest }}
296+
${{ fromJSON(needs.build-and-publish-devel-packages-image.arm64_cuda13_1_1).digest }}
297+
${{ fromJSON(needs.build-and-publish-runtime-cuda-base-image.amd64_cuda13_1_1).digest }}
298+
${{ fromJSON(needs.build-and-publish-runtime-cuda-base-image.arm64_cuda13_1_1).digest }}
299+
${{ fromJSON(needs.build-and-publish-runtime-cudf-image.amd64_cuda13_1_1).digest }}
300+
${{ fromJSON(needs.build-and-publish-runtime-cudf-image.arm64_cuda13_1_1).digest }}
301+
${{ fromJSON(needs.build-and-publish-runtime-cuml-image.amd64_cuda13_1_1).digest }}
302+
${{ fromJSON(needs.build-and-publish-runtime-cuml-image.arm64_cuda13_1_1).digest }}
303+
${{ fromJSON(needs.build-and-publish-runtime-cugraph-image.amd64_cuda13_1_1).digest }}
304+
${{ fromJSON(needs.build-and-publish-runtime-cugraph-image.arm64_cuda13_1_1).digest }}
305+
${{ fromJSON(needs.build-and-publish-runtime-cuspatial-image.amd64_cuda13_1_1).digest }}
306+
${{ fromJSON(needs.build-and-publish-runtime-cuspatial-image.arm64_cuda13_1_1).digest }}
307+
${{ fromJSON(needs.build-and-publish-runtime-glfw-image.amd64_cuda13_1_1).digest }}
308+
${{ fromJSON(needs.build-and-publish-runtime-glfw-image.arm64_cuda13_1_1).digest }}
309+
${{ fromJSON(needs.build-and-publish-runtime-main-image.amd64_cuda13_1_1).digest }}
310+
${{ fromJSON(needs.build-and-publish-runtime-main-image.arm64_cuda13_1_1).digest }}
311+
${{ fromJSON(needs.build-and-publish-runtime-demo-image.amd64_cuda13_1_1).digest }}
312+
${{ fromJSON(needs.build-and-publish-runtime-demo-image.arm64_cuda13_1_1).digest }}
333313
steps:
334314
- name: Clean up untagged images
335315
uses: snok/container-retention-policy@3b0972b2276b171b212f8c4efbca59ebba26eceb

0 commit comments

Comments
 (0)