From a04be61322dc37930faa54c1b03ef7af61558d69 Mon Sep 17 00:00:00 2001 From: "Shiva Kumar (SW-CLOUD)" Date: Tue, 6 Jan 2026 19:21:38 +0530 Subject: [PATCH 01/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) --- .github/workflows/image.yaml | 4 +- .github/workflows/precompiled.yaml | 74 ++++++++++++++++----------- multi-arch.mk | 1 - ubuntu24.04/precompiled/Dockerfile | 17 +++--- ubuntu24.04/precompiled/local-repo.sh | 14 ++++- 5 files changed, 68 insertions(+), 42 deletions(-) diff --git a/.github/workflows/image.yaml b/.github/workflows/image.yaml index 24148bccd..a0b8da726 100644 --- a/.github/workflows/image.yaml +++ b/.github/workflows/image.yaml @@ -18,9 +18,7 @@ name: image on: push: branches: - - main - - "pull-request/[0-9]+" - - release-* + - precompiled-arm-support-no jobs: image: diff --git a/.github/workflows/precompiled.yaml b/.github/workflows/precompiled.yaml index 21f25eab9..0df777b0a 100644 --- a/.github/workflows/precompiled.yaml +++ b/.github/workflows/precompiled.yaml @@ -16,6 +16,9 @@ name: Precompiled images on: + push: + branches: + - precompiled-arm-support schedule: - cron: '00 09 * * *' workflow_dispatch: @@ -35,22 +38,26 @@ jobs: id: extract_driver_branch run: | # get driver_branch - DRIVER_BRANCH=("535" "570" "580") + # DRIVER_BRANCH=("535" "570" "580") + DRIVER_BRANCH=("580") driver_branch_json=$(printf '%s\n' "${DRIVER_BRANCH[@]}" | jq -R . | jq -cs .) echo "driver_branch=$driver_branch_json" >> $GITHUB_OUTPUT # get kernel flavors - KERNEL_FLAVORS=("aws" "azure" "azure-fde" "generic" "nvidia" "oracle") + # KERNEL_FLAVORS=("aws" "azure" "azure-fde" "generic" "nvidia" "oracle") + KERNEL_FLAVORS=("generic") kernel_flavors_json=$(printf '%s\n' "${KERNEL_FLAVORS[@]}" | jq -R . | jq -cs .) echo "kernel_flavors=$kernel_flavors_json" >> $GITHUB_OUTPUT # get ubuntu distributions - DIST=("ubuntu22.04" "ubuntu24.04") + # DIST=("ubuntu22.04" "ubuntu24.04") + DIST=("ubuntu24.04") dist_json=$(printf '%s\n' "${DIST[@]}" | jq -R . | jq -cs .) echo "dist=$dist_json" >> $GITHUB_OUTPUT # LTS_KERNEL setup - LTS_KERNEL=("5.15" "6.8") + # LTS_KERNEL=("5.15" "6.8") + LTS_KERNEL=("6.8") lts_kernel_json=$(printf '%s\n' "${LTS_KERNEL[@]}" | jq -R . | jq -cs .) echo "lts_kernel=$lts_kernel_json" >> $GITHUB_OUTPUT @@ -82,7 +89,13 @@ jobs: GENERATE_ARTIFACTS="false" echo "PUSH_ON_BUILD=${GENERATE_ARTIFACTS}" >> $GITHUB_ENV - echo "BUILD_MULTI_ARCH_IMAGES=${GENERATE_ARTIFACTS}" >> $GITHUB_ENV + + # Enable multi-arch builds only for Ubuntu 24.04 when generating artifacts + if [[ "${{ matrix.dist }}" == "ubuntu24.04" ]]; then + echo "BUILD_MULTI_ARCH_IMAGES=true" >> $GITHUB_ENV + else + echo "BUILD_MULTI_ARCH_IMAGES=false" >> $GITHUB_ENV + fi - name: Set up QEMU uses: docker/setup-qemu-action@v3 @@ -120,6 +133,7 @@ jobs: IMAGE_NAME: ghcr.io/nvidia/driver PRECOMPILED: "true" DIST: signed_${{ matrix.dist }} + VERSION: "" run: | source kernel_version.txt && \ make DRIVER_VERSIONS=${DRIVER_VERSIONS} DRIVER_BRANCH=${{ matrix.driver_branch }} build-${DIST}-${DRIVER_VERSION} @@ -289,18 +303,18 @@ jobs: # slack notification for new kernel release before e2e tests starts # as e2e tests may fail for new kernel release - - name: Slack notification - if: steps.set_kernel_version.outputs.matrix_values_not_empty == '1' - uses: slackapi/slack-github-action@v2.1.1 - with: - token: ${{ secrets.SLACK_BOT_TOKEN }} - method: chat.postMessage - payload: | - { - "channel": "${{ secrets.SLACK_CHANNEL_ID }}", - "text": "${{ secrets.DETECTED_PRECOMPILED_KERNEL_MESSAGE }} ${{ steps.set_kernel_version.outputs.published_kernels }} \n - Details: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" - } + # - name: Slack notification + # if: steps.set_kernel_version.outputs.matrix_values_not_empty == '1' + # uses: slackapi/slack-github-action@v2.1.1 + # with: + # token: ${{ secrets.SLACK_BOT_TOKEN }} + # method: chat.postMessage + # payload: | + # { + # "channel": "${{ secrets.SLACK_CHANNEL_ID }}", + # "text": "${{ secrets.DETECTED_PRECOMPILED_KERNEL_MESSAGE }} ${{ steps.set_kernel_version.outputs.published_kernels }} \n + # Details: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" + # } e2e-tests-nvidiadriver: runs-on: linux-amd64-cpu4 @@ -458,7 +472,7 @@ jobs: image_path="./base-images-${{ matrix.driver_branch }}-${{ matrix.kernel_version }}.tar" echo "uploading $image_path" docker load -i $image_path - docker push ${PRIVATE_REGISTRY}/nvidia/driver:base-${BASE_TARGET}-${LTS_KERNEL}-${KERNEL_FLAVOR}-${{ matrix.driver_branch }} + # docker push ${PRIVATE_REGISTRY}/nvidia/driver:base-${BASE_TARGET}-${LTS_KERNEL}-${KERNEL_FLAVOR}-${{ matrix.driver_branch }} - name: Download built image artifact if: ${{ ! (matrix.driver_branch == 535 && contains(matrix.kernel_version, 'ubuntu24.04')) }} @@ -473,16 +487,16 @@ jobs: image_path="./driver-images-${{ matrix.driver_branch }}-${{ matrix.kernel_version }}.tar" echo "uploading $image_path" docker load -i $image_path - docker push ${PRIVATE_REGISTRY}/nvidia/driver:${{ matrix.driver_branch }}-${{ matrix.kernel_version }} + # docker push ${PRIVATE_REGISTRY}/nvidia/driver:${{ matrix.driver_branch }}-${{ matrix.kernel_version }} - - name: Slack notification - if: ${{ ! (matrix.driver_branch == 535 && contains(matrix.kernel_version, 'ubuntu24.04')) }} - uses: slackapi/slack-github-action@v2.1.1 - with: - token: ${{ secrets.SLACK_BOT_TOKEN }} - method: chat.postMessage - payload: | - { - "channel": "${{ secrets.SLACK_CHANNEL_ID }}", - "text": "${{ secrets.PUBLISHED_PRECOMPILED_IMAGE_MESSAGE }} ${{ env.PRIVATE_REGISTRY }}/nvidia/driver:${{ matrix.driver_branch }}-${{ matrix.kernel_version }}" - } + # - name: Slack notification + # if: ${{ ! (matrix.driver_branch == 535 && contains(matrix.kernel_version, 'ubuntu24.04')) }} + # uses: slackapi/slack-github-action@v2.1.1 + # with: + # token: ${{ secrets.SLACK_BOT_TOKEN }} + # method: chat.postMessage + # payload: | + # { + # "channel": "${{ secrets.SLACK_CHANNEL_ID }}", + # "text": "${{ secrets.PUBLISHED_PRECOMPILED_IMAGE_MESSAGE }} ${{ env.PRIVATE_REGISTRY }}/nvidia/driver:${{ matrix.driver_branch }}-${{ matrix.kernel_version }}" + # } diff --git a/multi-arch.mk b/multi-arch.mk index 263fa88fb..a9cf25035 100644 --- a/multi-arch.mk +++ b/multi-arch.mk @@ -27,5 +27,4 @@ $(DRIVER_PUSH_TARGETS): push-%: build-ubuntu18.04%: DOCKER_BUILD_PLATFORM_OPTIONS = --platform=linux/amd64 build-signed_ubuntu20.04%: DOCKER_BUILD_PLATFORM_OPTIONS = --platform=linux/amd64 build-signed_ubuntu22.04%: DOCKER_BUILD_PLATFORM_OPTIONS = --platform=linux/amd64 -build-signed_ubuntu24.04%: DOCKER_BUILD_PLATFORM_OPTIONS = --platform=linux/amd64 build-sles%: DOCKER_BUILD_PLATFORM_OPTIONS = --platform=linux/amd64 diff --git a/ubuntu24.04/precompiled/Dockerfile b/ubuntu24.04/precompiled/Dockerfile index c36043c7d..387f9c535 100644 --- a/ubuntu24.04/precompiled/Dockerfile +++ b/ubuntu24.04/precompiled/Dockerfile @@ -17,7 +17,8 @@ ENV NVIDIA_VISIBLE_DEVICES=void RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections -RUN dpkg --add-architecture i386 && \ +# Add i386 architecture only for amd64 builds (not available on ARM) +RUN if [ "$TARGETARCH" = "amd64" ]; then dpkg --add-architecture i386; fi && \ apt-get update && apt-get install -y --no-install-recommends \ apt-utils \ build-essential \ @@ -31,11 +32,12 @@ RUN dpkg --add-architecture i386 && \ pkg-config && \ rm -rf /var/lib/apt/lists/* -# Fetch GPG keys for CUDA repo -RUN apt-key del 3bf863cc && \ +# Fetch GPG keys for CUDA repo (architecture-specific) +RUN CUDA_ARCH=$([ "$TARGETARCH" = "arm64" ] && echo "sbsa" || echo "x86_64") && \ + apt-key del 3bf863cc && \ rm /etc/apt/sources.list.d/cuda.list && \ - curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/3bf863cc.pub | gpg --dearmor -o /etc/apt/keyrings/cuda.pub && \ - echo "deb [signed-by=/etc/apt/keyrings/cuda.pub] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64 /" > /etc/apt/sources.list.d/cuda.list + curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/${CUDA_ARCH}/3bf863cc.pub | gpg --dearmor -o /etc/apt/keyrings/cuda.pub && \ + echo "deb [signed-by=/etc/apt/keyrings/cuda.pub] https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/${CUDA_ARCH} /" > /etc/apt/sources.list.d/cuda.list RUN usermod -o -u 0 -g 0 _apt @@ -50,7 +52,10 @@ COPY nvidia-driver /usr/local/bin ADD local-repo.sh /tmp -RUN mkdir -p /usr/local/repos && \ +RUN apt-get clean && \ + apt-get autoclean && \ + rm -rf /var/lib/apt/lists/* && \ + mkdir -p /usr/local/repos && \ /tmp/local-repo.sh download_driver_package_deps && \ /tmp/local-repo.sh build_local_apt_repo && \ /tmp/local-repo.sh fetch_nvidia_installer && \ diff --git a/ubuntu24.04/precompiled/local-repo.sh b/ubuntu24.04/precompiled/local-repo.sh index 1e35de722..0df3e57d0 100755 --- a/ubuntu24.04/precompiled/local-repo.sh +++ b/ubuntu24.04/precompiled/local-repo.sh @@ -68,7 +68,12 @@ download_driver_package_deps () { pushd ${LOCAL_REPO_DIR} download_apt_with_dep linux-objects-nvidia-${DRIVER_BRANCH}-server-${KERNEL_VERSION} - download_apt_with_dep linux-signatures-nvidia-${KERNEL_VERSION} + + # linux-signatures-nvidia (secure boot signatures) is not available for arm64 + if [ "$TARGETARCH" = "amd64" ]; then + download_apt_with_dep linux-signatures-nvidia-${KERNEL_VERSION} + fi + download_apt_with_dep linux-modules-nvidia-${DRIVER_BRANCH}-server-${KERNEL_VERSION} download_apt_with_dep linux-modules-nvidia-${DRIVER_BRANCH}-server-open-${KERNEL_VERSION} download_apt_with_dep nvidia-utils-${DRIVER_BRANCH}-server @@ -76,7 +81,12 @@ download_driver_package_deps () { download_apt_with_dep libnvidia-decode-${DRIVER_BRANCH}-server download_apt_with_dep libnvidia-extra-${DRIVER_BRANCH}-server download_apt_with_dep libnvidia-encode-${DRIVER_BRANCH}-server - download_apt_with_dep libnvidia-fbc1-${DRIVER_BRANCH}-server + + # SHIVAKU: TODO: Remove this once libnvidia-fbc1 is available for arm64 + # libnvidia-fbc1 (FrameBuffer Capture) is not available for arm64 + if [ "$TARGETARCH" = "amd64" ]; then + download_apt_with_dep libnvidia-fbc1-${DRIVER_BRANCH}-server + fi fabricmanager_download nscq_download From 50e61e763f8789954d856912c552762ac67c297f Mon Sep 17 00:00:00 2001 From: "Shiva Kumar (SW-CLOUD)" Date: Mon, 9 Feb 2026 15:00:44 +0530 Subject: [PATCH 02/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) --- .github/workflows/precompiled.yaml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.github/workflows/precompiled.yaml b/.github/workflows/precompiled.yaml index 0df777b0a..4c9b0c8c9 100644 --- a/.github/workflows/precompiled.yaml +++ b/.github/workflows/precompiled.yaml @@ -89,13 +89,7 @@ jobs: GENERATE_ARTIFACTS="false" echo "PUSH_ON_BUILD=${GENERATE_ARTIFACTS}" >> $GITHUB_ENV - - # Enable multi-arch builds only for Ubuntu 24.04 when generating artifacts - if [[ "${{ matrix.dist }}" == "ubuntu24.04" ]]; then - echo "BUILD_MULTI_ARCH_IMAGES=true" >> $GITHUB_ENV - else - echo "BUILD_MULTI_ARCH_IMAGES=false" >> $GITHUB_ENV - fi + echo "BUILD_MULTI_ARCH_IMAGES=${GENERATE_ARTIFACTS}" >> $GITHUB_ENV - name: Set up QEMU uses: docker/setup-qemu-action@v3 From 2e8e37d159f5956291796d1d05a3fe1f3053afdf Mon Sep 17 00:00:00 2001 From: "Shiva Kumar (SW-CLOUD)" Date: Mon, 9 Feb 2026 16:41:49 +0530 Subject: [PATCH 03/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) --- tests/scripts/findkernelversion.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/scripts/findkernelversion.sh b/tests/scripts/findkernelversion.sh index 9731a39c7..bfba486da 100755 --- a/tests/scripts/findkernelversion.sh +++ b/tests/scripts/findkernelversion.sh @@ -21,11 +21,15 @@ prefix="kernel-version-${DRIVER_BRANCH}-${LTS_KERNEL}" suffix="${kernel_flavor}-${DIST}" artifact_dir="./kernel-version-artifacts" +ls -la $artifact_dir artifact=$(find "$artifact_dir" -maxdepth 1 -type d -name "${prefix}*-${suffix}" | head -1) +echo "artifact: $artifact" if [ -n "$artifact" ]; then artifact_name=$(basename "$artifact") if [ -f "$artifact/${artifact_name}.tar" ]; then tar -xf "$artifact/${artifact_name}.tar" -C ./ + ls -la ./ + echo "kernel_version.txt: $(cat kernel_version.txt)" export $(grep -oP 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) rm -f kernel_version.txt fi From a6c1cef476b5ff499294bc4e89411eaa48e2f3f0 Mon Sep 17 00:00:00 2001 From: "Shiva Kumar (SW-CLOUD)" Date: Mon, 9 Feb 2026 17:39:11 +0530 Subject: [PATCH 04/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) --- tests/scripts/findkernelversion.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/findkernelversion.sh b/tests/scripts/findkernelversion.sh index bfba486da..a36564489 100755 --- a/tests/scripts/findkernelversion.sh +++ b/tests/scripts/findkernelversion.sh @@ -18,7 +18,7 @@ export PATH=$(pwd)/bin:${PATH} # calculate kernel version of latest image prefix="kernel-version-${DRIVER_BRANCH}-${LTS_KERNEL}" -suffix="${kernel_flavor}-${DIST}" +suffix="${KERNEL_FLAVOR}-${DIST}" artifact_dir="./kernel-version-artifacts" ls -la $artifact_dir From 81fc66b4e6badcc10a68ab560b11a983f0517dbe Mon Sep 17 00:00:00 2001 From: "Shiva Kumar (SW-CLOUD)" Date: Mon, 9 Feb 2026 18:06:35 +0530 Subject: [PATCH 05/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) --- tests/scripts/findkernelversion.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/scripts/findkernelversion.sh b/tests/scripts/findkernelversion.sh index a36564489..fb1e0b7d8 100755 --- a/tests/scripts/findkernelversion.sh +++ b/tests/scripts/findkernelversion.sh @@ -30,7 +30,16 @@ if [ -n "$artifact" ]; then tar -xf "$artifact/${artifact_name}.tar" -C ./ ls -la ./ echo "kernel_version.txt: $(cat kernel_version.txt)" - export $(grep -oP 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) + export $(grep -oE 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) + rm -f kernel_version.txt + fi +else + artifact_file=$(find "$artifact_dir" -maxdepth 1 -type f -name "${prefix}*-${suffix}.tar" | head -1) + if [ -n "$artifact_file" ]; then + tar -xf "$artifact_file" -C ./ + ls -la ./ + echo "kernel_version.txt: $(cat kernel_version.txt)" + export $(grep -oE 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) rm -f kernel_version.txt fi fi From 4958ec4f90ac66b1d85e74289502b318d11d140f Mon Sep 17 00:00:00 2001 From: "Shiva Kumar (SW-CLOUD)" Date: Mon, 9 Feb 2026 20:42:55 +0530 Subject: [PATCH 06/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) --- tests/scripts/findkernelversion.sh | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/scripts/findkernelversion.sh b/tests/scripts/findkernelversion.sh index fb1e0b7d8..3d64f602c 100755 --- a/tests/scripts/findkernelversion.sh +++ b/tests/scripts/findkernelversion.sh @@ -21,15 +21,11 @@ prefix="kernel-version-${DRIVER_BRANCH}-${LTS_KERNEL}" suffix="${KERNEL_FLAVOR}-${DIST}" artifact_dir="./kernel-version-artifacts" -ls -la $artifact_dir artifact=$(find "$artifact_dir" -maxdepth 1 -type d -name "${prefix}*-${suffix}" | head -1) -echo "artifact: $artifact" if [ -n "$artifact" ]; then artifact_name=$(basename "$artifact") if [ -f "$artifact/${artifact_name}.tar" ]; then tar -xf "$artifact/${artifact_name}.tar" -C ./ - ls -la ./ - echo "kernel_version.txt: $(cat kernel_version.txt)" export $(grep -oE 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) rm -f kernel_version.txt fi @@ -37,8 +33,6 @@ else artifact_file=$(find "$artifact_dir" -maxdepth 1 -type f -name "${prefix}*-${suffix}.tar" | head -1) if [ -n "$artifact_file" ]; then tar -xf "$artifact_file" -C ./ - ls -la ./ - echo "kernel_version.txt: $(cat kernel_version.txt)" export $(grep -oE 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) rm -f kernel_version.txt fi From 567dda9e66603cbab4e7748868c9748d86208cf0 Mon Sep 17 00:00:00 2001 From: "Shiva Kumar (SW-CLOUD)" Date: Mon, 9 Feb 2026 20:57:00 +0530 Subject: [PATCH 07/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) --- .github/workflows/precompiled.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/precompiled.yaml b/.github/workflows/precompiled.yaml index 4c9b0c8c9..d2acc14c7 100644 --- a/.github/workflows/precompiled.yaml +++ b/.github/workflows/precompiled.yaml @@ -271,6 +271,9 @@ jobs: LTS_KERNEL=($(echo "$lts_kernel_json" | jq -r '.[]')) for dist in "${DIST[@]}"; do for kernel in "${LTS_KERNEL[@]}"; do + echo "dist: $dist, kernel: $kernel" + echo "artifacts: $(ls -la ./matrix-values-artifacts)" + echo "artifact_name: matrix-values-${dist}-${kernel}" artifact_name="matrix-values-${dist}-${kernel}" file_path="./matrix-values-artifacts/${artifact_name}/matrix_values_${dist}_${kernel}.json" if [ -f "$file_path" ]; then From 4b2737a7742d9e54e0bad760605a85e0705b530c Mon Sep 17 00:00:00 2001 From: "Shiva Kumar (SW-CLOUD)" Date: Mon, 9 Feb 2026 21:36:24 +0530 Subject: [PATCH 08/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) --- .github/workflows/precompiled.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/precompiled.yaml b/.github/workflows/precompiled.yaml index d2acc14c7..228189f4a 100644 --- a/.github/workflows/precompiled.yaml +++ b/.github/workflows/precompiled.yaml @@ -273,9 +273,9 @@ jobs: for kernel in "${LTS_KERNEL[@]}"; do echo "dist: $dist, kernel: $kernel" echo "artifacts: $(ls -la ./matrix-values-artifacts)" - echo "artifact_name: matrix-values-${dist}-${kernel}" - artifact_name="matrix-values-${dist}-${kernel}" - file_path="./matrix-values-artifacts/${artifact_name}/matrix_values_${dist}_${kernel}.json" + echo "artifact_name: matrix-values-${dist}-${kernel}.json" + artifact_name="matrix-values-${dist}-${kernel}.json" + file_path="./matrix-values-artifacts/${artifact_name}" if [ -f "$file_path" ]; then echo "Successfully found artifact: $artifact_name at $file_path" value=$(jq -r '.[]' "$file_path") From 60a00eb8edbacca0430b2a316b69fc48ccefb98a Mon Sep 17 00:00:00 2001 From: "Shiva Kumar (SW-CLOUD)" Date: Tue, 10 Feb 2026 10:29:07 +0530 Subject: [PATCH 09/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) --- .github/workflows/precompiled.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/precompiled.yaml b/.github/workflows/precompiled.yaml index 228189f4a..c5f9551ca 100644 --- a/.github/workflows/precompiled.yaml +++ b/.github/workflows/precompiled.yaml @@ -273,8 +273,8 @@ jobs: for kernel in "${LTS_KERNEL[@]}"; do echo "dist: $dist, kernel: $kernel" echo "artifacts: $(ls -la ./matrix-values-artifacts)" - echo "artifact_name: matrix-values-${dist}-${kernel}.json" - artifact_name="matrix-values-${dist}-${kernel}.json" + echo "artifact_name: matrix_values_${dist}_${kernel}.json" + artifact_name="matrix_values_${dist}_${kernel}.json" file_path="./matrix-values-artifacts/${artifact_name}" if [ -f "$file_path" ]; then echo "Successfully found artifact: $artifact_name at $file_path" From 38f07c939e21e03cca7f3dbb34e5ac5292363a90 Mon Sep 17 00:00:00 2001 From: "Shiva Kumar (SW-CLOUD)" Date: Tue, 10 Feb 2026 11:40:39 +0530 Subject: [PATCH 10/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) --- .github/workflows/precompiled.yaml | 3 --- tests/scripts/findkernelversion.sh | 14 +++++++------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/.github/workflows/precompiled.yaml b/.github/workflows/precompiled.yaml index c5f9551ca..dc67ce826 100644 --- a/.github/workflows/precompiled.yaml +++ b/.github/workflows/precompiled.yaml @@ -271,9 +271,6 @@ jobs: LTS_KERNEL=($(echo "$lts_kernel_json" | jq -r '.[]')) for dist in "${DIST[@]}"; do for kernel in "${LTS_KERNEL[@]}"; do - echo "dist: $dist, kernel: $kernel" - echo "artifacts: $(ls -la ./matrix-values-artifacts)" - echo "artifact_name: matrix_values_${dist}_${kernel}.json" artifact_name="matrix_values_${dist}_${kernel}.json" file_path="./matrix-values-artifacts/${artifact_name}" if [ -f "$file_path" ]; then diff --git a/tests/scripts/findkernelversion.sh b/tests/scripts/findkernelversion.sh index 3d64f602c..cf5170529 100755 --- a/tests/scripts/findkernelversion.sh +++ b/tests/scripts/findkernelversion.sh @@ -29,13 +29,13 @@ if [ -n "$artifact" ]; then export $(grep -oE 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) rm -f kernel_version.txt fi -else - artifact_file=$(find "$artifact_dir" -maxdepth 1 -type f -name "${prefix}*-${suffix}.tar" | head -1) - if [ -n "$artifact_file" ]; then - tar -xf "$artifact_file" -C ./ - export $(grep -oE 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) - rm -f kernel_version.txt - fi +# else +# artifact_file=$(find "$artifact_dir" -maxdepth 1 -type f -name "${prefix}*-${suffix}.tar" | head -1) +# if [ -n "$artifact_file" ]; then +# tar -xf "$artifact_file" -C ./ +# export $(grep -oE 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) +# rm -f kernel_version.txt +# fi fi # calculate driver tag From 80eb1acef804a7b7d5849b54613c5b0c901ae5db Mon Sep 17 00:00:00 2001 From: Shiva Kumar Date: Tue, 10 Feb 2026 12:16:01 +0530 Subject: [PATCH 11/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) Signed-off-by: Shiva Kumar (SW-CLOUD) --- .github/workflows/precompiled.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/precompiled.yaml b/.github/workflows/precompiled.yaml index dc67ce826..25c7d6877 100644 --- a/.github/workflows/precompiled.yaml +++ b/.github/workflows/precompiled.yaml @@ -220,6 +220,11 @@ jobs: [[ $branch != "535" ]] && echo "$branch" done)) fi + echo "DRIVER_BRANCHES: ${DRIVER_BRANCHES[@]}" + echo "KERNEL_FLAVORS: ${KERNEL_FLAVORS[@]}" + echo "DIST: $DIST" + echo "LTS_KERNEL: $LTS_KERNEL" + find ./ -type f source ./tests/scripts/ci-precompiled-helpers.sh KERNEL_VERSIONS=($(get_kernel_versions_to_test KERNEL_FLAVORS[@] DRIVER_BRANCHES[@] $DIST $LTS_KERNEL)) if [ -z "$KERNEL_VERSIONS" ]; then From 60009b133be55d2cabe35151889255efe8d79be2 Mon Sep 17 00:00:00 2001 From: Shiva Kumar Date: Tue, 10 Feb 2026 12:34:30 +0530 Subject: [PATCH 12/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) Signed-off-by: Shiva Kumar (SW-CLOUD) --- .github/workflows/precompiled.yaml | 2 +- tests/scripts/findkernelversion.sh | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/precompiled.yaml b/.github/workflows/precompiled.yaml index 25c7d6877..85e4d47da 100644 --- a/.github/workflows/precompiled.yaml +++ b/.github/workflows/precompiled.yaml @@ -224,7 +224,7 @@ jobs: echo "KERNEL_FLAVORS: ${KERNEL_FLAVORS[@]}" echo "DIST: $DIST" echo "LTS_KERNEL: $LTS_KERNEL" - find ./ -type f + # find ./ -type f source ./tests/scripts/ci-precompiled-helpers.sh KERNEL_VERSIONS=($(get_kernel_versions_to_test KERNEL_FLAVORS[@] DRIVER_BRANCHES[@] $DIST $LTS_KERNEL)) if [ -z "$KERNEL_VERSIONS" ]; then diff --git a/tests/scripts/findkernelversion.sh b/tests/scripts/findkernelversion.sh index cf5170529..ddde9c7c9 100755 --- a/tests/scripts/findkernelversion.sh +++ b/tests/scripts/findkernelversion.sh @@ -20,7 +20,16 @@ export PATH=$(pwd)/bin:${PATH} prefix="kernel-version-${DRIVER_BRANCH}-${LTS_KERNEL}" suffix="${KERNEL_FLAVOR}-${DIST}" +find ./ -type f artifact_dir="./kernel-version-artifacts" +echo "artifact_dir $artifact_dir" +echo "KERNEL_FLAVOR $KERNEL_FLAVOR" +echo "DRIVER_BRANCH $DRIVER_BRANCH" +echo "DIST $DIST" +echo "LTS_KERNEL $LTS_KERNEL" +echo "prefix $prefix" +echo "suffix $suffix" +find $artifact_dir -type f artifact=$(find "$artifact_dir" -maxdepth 1 -type d -name "${prefix}*-${suffix}" | head -1) if [ -n "$artifact" ]; then artifact_name=$(basename "$artifact") From e05fb513c8fe47e95e3da72c8daaa5ef13f8360d Mon Sep 17 00:00:00 2001 From: Shiva Kumar Date: Tue, 10 Feb 2026 13:23:17 +0530 Subject: [PATCH 13/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) Signed-off-by: Shiva Kumar (SW-CLOUD) --- tests/scripts/findkernelversion.sh | 51 ++++++++++++++++-------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/tests/scripts/findkernelversion.sh b/tests/scripts/findkernelversion.sh index ddde9c7c9..8e8062f03 100755 --- a/tests/scripts/findkernelversion.sh +++ b/tests/scripts/findkernelversion.sh @@ -20,33 +20,38 @@ export PATH=$(pwd)/bin:${PATH} prefix="kernel-version-${DRIVER_BRANCH}-${LTS_KERNEL}" suffix="${KERNEL_FLAVOR}-${DIST}" -find ./ -type f -artifact_dir="./kernel-version-artifacts" -echo "artifact_dir $artifact_dir" -echo "KERNEL_FLAVOR $KERNEL_FLAVOR" -echo "DRIVER_BRANCH $DRIVER_BRANCH" -echo "DIST $DIST" -echo "LTS_KERNEL $LTS_KERNEL" -echo "prefix $prefix" -echo "suffix $suffix" -find $artifact_dir -type f -artifact=$(find "$artifact_dir" -maxdepth 1 -type d -name "${prefix}*-${suffix}" | head -1) -if [ -n "$artifact" ]; then - artifact_name=$(basename "$artifact") - if [ -f "$artifact/${artifact_name}.tar" ]; then - tar -xf "$artifact/${artifact_name}.tar" -C ./ - export $(grep -oE 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) - rm -f kernel_version.txt - fi -# else -# artifact_file=$(find "$artifact_dir" -maxdepth 1 -type f -name "${prefix}*-${suffix}.tar" | head -1) -# if [ -n "$artifact_file" ]; then -# tar -xf "$artifact_file" -C ./ +# find ./ -type f +# artifact_dir="./kernel-version-artifacts" +# echo "artifact_dir $artifact_dir" +# echo "KERNEL_FLAVOR $KERNEL_FLAVOR" +# echo "DRIVER_BRANCH $DRIVER_BRANCH" +# echo "DIST $DIST" +# echo "LTS_KERNEL $LTS_KERNEL" +# echo "prefix $prefix" +# echo "suffix $suffix" +# find $artifact_dir -type f +# artifact=$(find "$artifact_dir" -maxdepth 1 -type d -name "${prefix}*-${suffix}" | head -1) +# if [ -n "$artifact" ]; then +# artifact_name=$(basename "$artifact") +# if [ -f "$artifact/${artifact_name}.tar" ]; then +# tar -xf "$artifact/${artifact_name}.tar" -C ./ # export $(grep -oE 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) # rm -f kernel_version.txt # fi +# # else +# # artifact_file=$(find "$artifact_dir" -maxdepth 1 -type f -name "${prefix}*-${suffix}.tar" | head -1) +# # if [ -n "$artifact_file" ]; then +# # tar -xf "$artifact_file" -C ./ +# # export $(grep -oE 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) +# # rm -f kernel_version.txt +# # fi +# fi +artifact_file=$(find "$artifact_dir" -maxdepth 1 -type f -name "${prefix}*-${suffix}.tar" | head -1) +if [ -n "$artifact_file" ]; then + tar -xf "$artifact_file" -C ./ + export $(grep -oE 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) + rm -f kernel_version.txt fi - # calculate driver tag status_nvcr=0 status_ghcr=0 From 45881626494c57bf2659c83f7aadbcf6547b0d94 Mon Sep 17 00:00:00 2001 From: Shiva Kumar Date: Tue, 10 Feb 2026 13:44:28 +0530 Subject: [PATCH 14/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) Signed-off-by: Shiva Kumar (SW-CLOUD) --- tests/scripts/findkernelversion.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/scripts/findkernelversion.sh b/tests/scripts/findkernelversion.sh index 8e8062f03..f531c3846 100755 --- a/tests/scripts/findkernelversion.sh +++ b/tests/scripts/findkernelversion.sh @@ -21,7 +21,7 @@ prefix="kernel-version-${DRIVER_BRANCH}-${LTS_KERNEL}" suffix="${KERNEL_FLAVOR}-${DIST}" # find ./ -type f -# artifact_dir="./kernel-version-artifacts" +artifact_dir="./kernel-version-artifacts" # echo "artifact_dir $artifact_dir" # echo "KERNEL_FLAVOR $KERNEL_FLAVOR" # echo "DRIVER_BRANCH $DRIVER_BRANCH" From b81f57142323f32f782faaaf01a7fb4a8f615cce Mon Sep 17 00:00:00 2001 From: Shiva Kumar Date: Tue, 10 Feb 2026 15:40:19 +0530 Subject: [PATCH 15/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) Signed-off-by: Shiva Kumar (SW-CLOUD) --- .github/workflows/precompiled.yaml | 40 ++++++++++++++++++++---------- tests/scripts/findkernelversion.sh | 25 ------------------- 2 files changed, 27 insertions(+), 38 deletions(-) diff --git a/.github/workflows/precompiled.yaml b/.github/workflows/precompiled.yaml index 85e4d47da..dced41a6c 100644 --- a/.github/workflows/precompiled.yaml +++ b/.github/workflows/precompiled.yaml @@ -31,6 +31,7 @@ jobs: kernel_flavors: ${{ steps.extract_driver_branch.outputs.kernel_flavors }} dist: ${{ steps.extract_driver_branch.outputs.dist }} lts_kernel: ${{ steps.extract_driver_branch.outputs.lts_kernel }} + platforms: ${{ steps.extract_driver_branch.outputs.platforms }} steps: - name: Checkout code uses: actions/checkout@v6 @@ -61,6 +62,11 @@ jobs: lts_kernel_json=$(printf '%s\n' "${LTS_KERNEL[@]}" | jq -R . | jq -cs .) echo "lts_kernel=$lts_kernel_json" >> $GITHUB_OUTPUT + # platforms for precompiled build (amd64 always; arm64 for ubuntu24.04) + PLATFORMS=("amd64" "arm64") + platforms_json=$(printf '%s\n' "${PLATFORMS[@]}" | jq -R . | jq -cs .) + echo "platforms=$platforms_json" >> $GITHUB_OUTPUT + precompiled-build-image: needs: set-driver-version-matrix runs-on: linux-amd64-cpu4 @@ -70,6 +76,7 @@ jobs: flavor: ${{ fromJson(needs.set-driver-version-matrix.outputs.kernel_flavors) }} dist: ${{ fromJson(needs.set-driver-version-matrix.outputs.dist) }} lts_kernel: ${{ fromJson(needs.set-driver-version-matrix.outputs.lts_kernel) }} + platform: ${{ fromJson(needs.set-driver-version-matrix.outputs.platforms) }} exclude: - dist: ubuntu24.04 driver_branch: 535 @@ -77,6 +84,9 @@ jobs: dist: ubuntu24.04 - flavor: azure-fde dist: ubuntu22.04 + # Only ubuntu24.04 builds for arm64 + - dist: ubuntu22.04 + platform: arm64 steps: - uses: actions/checkout@v6 name: Check out code @@ -89,7 +99,8 @@ jobs: GENERATE_ARTIFACTS="false" echo "PUSH_ON_BUILD=${GENERATE_ARTIFACTS}" >> $GITHUB_ENV - echo "BUILD_MULTI_ARCH_IMAGES=${GENERATE_ARTIFACTS}" >> $GITHUB_ENV + echo "BUILD_MULTI_ARCH_IMAGES=false" >> $GITHUB_ENV + echo "DOCKER_BUILD_PLATFORM_OPTIONS=--platform=linux/${{ matrix.platform }}" >> $GITHUB_ENV - name: Set up QEMU uses: docker/setup-qemu-action@v3 @@ -107,6 +118,7 @@ jobs: env: IMAGE_NAME: ghcr.io/nvidia/driver LTS_KERNEL: ${{ matrix.lts_kernel }} + DOCKER_BUILD_PLATFORM_OPTIONS: --platform=linux/${{ matrix.platform }} run: | if [[ "${{ matrix.dist }}" == "ubuntu22.04" ]]; then BASE_TARGET="jammy" @@ -128,6 +140,7 @@ jobs: PRECOMPILED: "true" DIST: signed_${{ matrix.dist }} VERSION: "" + DOCKER_BUILD_PLATFORM_OPTIONS: --platform=linux/${{ matrix.platform }} run: | source kernel_version.txt && \ make DRIVER_VERSIONS=${DRIVER_VERSIONS} DRIVER_BRANCH=${{ matrix.driver_branch }} build-${DIST}-${DRIVER_VERSION} @@ -144,30 +157,36 @@ jobs: elif [[ "${{ matrix.dist }}" == "ubuntu24.04" ]]; then BASE_TARGET="noble" fi + # Artifact name suffix: amd64 has no suffix (e2e uses these), arm64 uses -arm64 + if [[ "${{ matrix.platform }}" == "amd64" ]]; then + echo "PLATFORM_SUFFIX=" >> $GITHUB_ENV + else + echo "PLATFORM_SUFFIX=-${{ matrix.platform }}" >> $GITHUB_ENV + fi tar -cvf kernel-version-${{ matrix.driver_branch }}-${KERNEL_VERSION}-${DIST}.tar kernel_version.txt docker save "${PRIVATE_REGISTRY}/nvidia/driver:base-${BASE_TARGET}-${LTS_KERNEL}-${{ matrix.flavor }}-${{ matrix.driver_branch }}" \ - -o ./base-images-${{ matrix.driver_branch }}-${KERNEL_VERSION}-${DIST}.tar + -o ./base-images-${{ matrix.driver_branch }}-${KERNEL_VERSION}-${DIST}${PLATFORM_SUFFIX}.tar docker save "${PRIVATE_REGISTRY}/nvidia/driver:${{ matrix.driver_branch }}-${KERNEL_VERSION}-${DIST}" \ - -o ./driver-images-${{ matrix.driver_branch }}-${KERNEL_VERSION}-${DIST}.tar - # set env for artifacts upload + -o ./driver-images-${{ matrix.driver_branch }}-${KERNEL_VERSION}-${DIST}${PLATFORM_SUFFIX}.tar echo "KERNEL_VERSION=$KERNEL_VERSION" >> $GITHUB_ENV echo "DIST=$DIST" >> $GITHUB_ENV - name: Upload base image as an artifact uses: actions/upload-artifact@v6 with: - name: base-images-${{ matrix.driver_branch }}-${{ env.KERNEL_VERSION }}-${{ env.DIST }} - path: ./base-images-${{ matrix.driver_branch }}-${{ env.KERNEL_VERSION }}-${{ env.DIST }}.tar + name: base-images-${{ matrix.driver_branch }}-${{ env.KERNEL_VERSION }}-${{ env.DIST }}${{ env.PLATFORM_SUFFIX }} + path: ./base-images-${{ matrix.driver_branch }}-${{ env.KERNEL_VERSION }}-${{ env.DIST }}${{ env.PLATFORM_SUFFIX }}.tar retention-days: 1 - name: Upload build image as an artifact uses: actions/upload-artifact@v6 with: - name: driver-images-${{ matrix.driver_branch }}-${{ env.KERNEL_VERSION }}-${{ env.DIST }} - path: ./driver-images-${{ matrix.driver_branch }}-${{ env.KERNEL_VERSION }}-${{ env.DIST }}.tar + name: driver-images-${{ matrix.driver_branch }}-${{ env.KERNEL_VERSION }}-${{ env.DIST }}${{ env.PLATFORM_SUFFIX }} + path: ./driver-images-${{ matrix.driver_branch }}-${{ env.KERNEL_VERSION }}-${{ env.DIST }}${{ env.PLATFORM_SUFFIX }}.tar retention-days: 1 - name: Upload kernel version as an artifact + if: matrix.platform == 'amd64' uses: actions/upload-artifact@v6 with: name: kernel-version-${{ matrix.driver_branch }}-${{ env.KERNEL_VERSION }}-${{ env.DIST }} @@ -220,11 +239,6 @@ jobs: [[ $branch != "535" ]] && echo "$branch" done)) fi - echo "DRIVER_BRANCHES: ${DRIVER_BRANCHES[@]}" - echo "KERNEL_FLAVORS: ${KERNEL_FLAVORS[@]}" - echo "DIST: $DIST" - echo "LTS_KERNEL: $LTS_KERNEL" - # find ./ -type f source ./tests/scripts/ci-precompiled-helpers.sh KERNEL_VERSIONS=($(get_kernel_versions_to_test KERNEL_FLAVORS[@] DRIVER_BRANCHES[@] $DIST $LTS_KERNEL)) if [ -z "$KERNEL_VERSIONS" ]; then diff --git a/tests/scripts/findkernelversion.sh b/tests/scripts/findkernelversion.sh index f531c3846..9093726e1 100755 --- a/tests/scripts/findkernelversion.sh +++ b/tests/scripts/findkernelversion.sh @@ -20,32 +20,7 @@ export PATH=$(pwd)/bin:${PATH} prefix="kernel-version-${DRIVER_BRANCH}-${LTS_KERNEL}" suffix="${KERNEL_FLAVOR}-${DIST}" -# find ./ -type f artifact_dir="./kernel-version-artifacts" -# echo "artifact_dir $artifact_dir" -# echo "KERNEL_FLAVOR $KERNEL_FLAVOR" -# echo "DRIVER_BRANCH $DRIVER_BRANCH" -# echo "DIST $DIST" -# echo "LTS_KERNEL $LTS_KERNEL" -# echo "prefix $prefix" -# echo "suffix $suffix" -# find $artifact_dir -type f -# artifact=$(find "$artifact_dir" -maxdepth 1 -type d -name "${prefix}*-${suffix}" | head -1) -# if [ -n "$artifact" ]; then -# artifact_name=$(basename "$artifact") -# if [ -f "$artifact/${artifact_name}.tar" ]; then -# tar -xf "$artifact/${artifact_name}.tar" -C ./ -# export $(grep -oE 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) -# rm -f kernel_version.txt -# fi -# # else -# # artifact_file=$(find "$artifact_dir" -maxdepth 1 -type f -name "${prefix}*-${suffix}.tar" | head -1) -# # if [ -n "$artifact_file" ]; then -# # tar -xf "$artifact_file" -C ./ -# # export $(grep -oE 'KERNEL_VERSION=[^ ]+' ./kernel_version.txt) -# # rm -f kernel_version.txt -# # fi -# fi artifact_file=$(find "$artifact_dir" -maxdepth 1 -type f -name "${prefix}*-${suffix}.tar" | head -1) if [ -n "$artifact_file" ]; then tar -xf "$artifact_file" -C ./ From 63ca3d9c5cdd17d27d9c4819c90f284b0e0f63f6 Mon Sep 17 00:00:00 2001 From: Shiva Kumar Date: Tue, 10 Feb 2026 16:30:35 +0530 Subject: [PATCH 16/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) Signed-off-by: Shiva Kumar (SW-CLOUD) --- .github/workflows/precompiled.yaml | 1 - Makefile | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/precompiled.yaml b/.github/workflows/precompiled.yaml index dced41a6c..fd14b15ff 100644 --- a/.github/workflows/precompiled.yaml +++ b/.github/workflows/precompiled.yaml @@ -84,7 +84,6 @@ jobs: dist: ubuntu24.04 - flavor: azure-fde dist: ubuntu22.04 - # Only ubuntu24.04 builds for arm64 - dist: ubuntu22.04 platform: arm64 steps: diff --git a/Makefile b/Makefile index 5572cf13b..ff097d4f4 100644 --- a/Makefile +++ b/Makefile @@ -215,6 +215,7 @@ $(BASE_BUILD_TARGETS): DOCKER_BUILDKIT=1 \ $(DOCKER) $(BUILDX) build --pull --no-cache \ $(DOCKER_BUILD_OPTIONS) \ + $(DOCKER_BUILD_PLATFORM_OPTIONS) \ --tag $(IMAGE) \ --target $(TARGET) \ --build-arg CUDA_VERSION="$(CUDA_VERSION)" \ From 11c78fb2545e1c0d0ed2de19b3a5b88d783ce921 Mon Sep 17 00:00:00 2001 From: Shiva Kumar Date: Tue, 10 Feb 2026 17:35:40 +0530 Subject: [PATCH 17/17] Support Data Center precompiled driver container for Arm (Ubuntu 24.04) Signed-off-by: Shiva Kumar (SW-CLOUD) --- .github/workflows/precompiled.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/precompiled.yaml b/.github/workflows/precompiled.yaml index fd14b15ff..55bd69880 100644 --- a/.github/workflows/precompiled.yaml +++ b/.github/workflows/precompiled.yaml @@ -133,6 +133,7 @@ jobs: docker cp base-${BASE_TARGET}-${{ matrix.flavor }}:/var/kernel_version.txt kernel_version.txt && break sleep 10 done + docker image ls - name: Build image env: IMAGE_NAME: ghcr.io/nvidia/driver @@ -143,13 +144,15 @@ jobs: run: | source kernel_version.txt && \ make DRIVER_VERSIONS=${DRIVER_VERSIONS} DRIVER_BRANCH=${{ matrix.driver_branch }} build-${DIST}-${DRIVER_VERSION} - + docker image ls + - name: Save base image, build image and kernel version file env: DIST: ${{ matrix.dist }} PRIVATE_REGISTRY: "ghcr.io" LTS_KERNEL: ${{ matrix.lts_kernel }} run: | + cat kernel_version.txt source kernel_version.txt if [[ "${{ matrix.dist }}" == "ubuntu22.04" ]]; then BASE_TARGET="jammy" @@ -162,13 +165,17 @@ jobs: else echo "PLATFORM_SUFFIX=-${{ matrix.platform }}" >> $GITHUB_ENV fi - tar -cvf kernel-version-${{ matrix.driver_branch }}-${KERNEL_VERSION}-${DIST}.tar kernel_version.txt + ls -la + docker image ls + tar -cvf kernel-version-${{ matrix.driver_branch }}-${KERNEL_VERSION}-${DIST}${PLATFORM_SUFFIX}.tar kernel_version.txt docker save "${PRIVATE_REGISTRY}/nvidia/driver:base-${BASE_TARGET}-${LTS_KERNEL}-${{ matrix.flavor }}-${{ matrix.driver_branch }}" \ -o ./base-images-${{ matrix.driver_branch }}-${KERNEL_VERSION}-${DIST}${PLATFORM_SUFFIX}.tar docker save "${PRIVATE_REGISTRY}/nvidia/driver:${{ matrix.driver_branch }}-${KERNEL_VERSION}-${DIST}" \ -o ./driver-images-${{ matrix.driver_branch }}-${KERNEL_VERSION}-${DIST}${PLATFORM_SUFFIX}.tar echo "KERNEL_VERSION=$KERNEL_VERSION" >> $GITHUB_ENV echo "DIST=$DIST" >> $GITHUB_ENV + ls -la + docker image ls - name: Upload base image as an artifact uses: actions/upload-artifact@v6