Add arm64 pytorch nightly entries and fix incorrect comment #19
Workflow file for this run
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
| # SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | |
| # | |
| # SPDX-License-Identifier: Apache-2.0 | |
| # Nightly CI pipeline that tests optional dependencies (PyTorch, numba-cuda) | |
| # against the latest cuda-python wheels built on main. | |
| # | |
| # This workflow does NOT build wheels — it downloads them from the latest | |
| # successful CI run on main and runs integration tests with optional deps. | |
| name: "CI: Nightly optional-deps" | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} | |
| cancel-in-progress: true | |
| on: | |
| push: | |
| branches: | |
| - "main" | |
| - "pull-request/[0-9]+" | |
| schedule: | |
| # 2 AM UTC daily, after the midnight main CI build finishes | |
| - cron: "0 2 * * *" | |
| workflow_dispatch: | |
| inputs: | |
| run-id: | |
| description: > | |
| Override the CI run ID to download artifacts from. | |
| Leave empty to auto-detect the latest successful main run. | |
| type: string | |
| default: '' | |
| jobs: | |
| find-wheels: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| RUN_ID: ${{ steps.find.outputs.run_id }} | |
| HEAD_SHA: ${{ steps.find.outputs.head_sha }} | |
| CUDA_BUILD_VER: ${{ steps.get-vars.outputs.cuda_build_ver }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| fetch-depth: 1 | |
| - name: Get CUDA build versions | |
| id: get-vars | |
| run: | | |
| cuda_build_ver=$(yq '.cuda.build.version' ci/versions.yml) | |
| echo "cuda_build_ver=$cuda_build_ver" >> $GITHUB_OUTPUT | |
| - name: Find latest successful CI run on main | |
| id: find | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| if [[ -n "${{ inputs.run-id }}" ]]; then | |
| RUN_ID="${{ inputs.run-id }}" | |
| HEAD_SHA=$(gh run view "$RUN_ID" \ | |
| -R "${{ github.repository }}" \ | |
| --json headSha | jq -r '.headSha') | |
| else | |
| # lookup-run-id --branch --head-sha prints two lines: run_id then head_sha | |
| OUTPUT=$(./ci/tools/lookup-run-id --branch main --head-sha "${{ github.repository }}" "CI") | |
| RUN_ID=$(echo "$OUTPUT" | sed -n '1p') | |
| HEAD_SHA=$(echo "$OUTPUT" | sed -n '2p') | |
| fi | |
| echo "run_id=$RUN_ID" >> $GITHUB_OUTPUT | |
| echo "head_sha=$HEAD_SHA" >> $GITHUB_OUTPUT | |
| # ── PyTorch interop tests ── | |
| test-pytorch-linux: | |
| name: "Nightly PyTorch (linux-64)" | |
| if: ${{ github.repository_owner == 'nvidia' }} | |
| needs: find-wheels | |
| permissions: | |
| contents: read | |
| actions: read | |
| secrets: inherit | |
| uses: ./.github/workflows/test-wheel-linux.yml | |
| with: | |
| build-type: nightly | |
| host-platform: linux-64 | |
| build-ctk-ver: ${{ needs.find-wheels.outputs.CUDA_BUILD_VER }} | |
| run-id: ${{ needs.find-wheels.outputs.RUN_ID }} | |
| sha: ${{ needs.find-wheels.outputs.HEAD_SHA }} | |
| test-mode: nightly-pytorch | |
| matrix_filter: 'map(select(.MODE == "nightly-pytorch"))' | |
| test-pytorch-linux-aarch64: | |
| name: "Nightly PyTorch (linux-aarch64)" | |
| if: ${{ github.repository_owner == 'nvidia' }} | |
| needs: find-wheels | |
| permissions: | |
| contents: read | |
| actions: read | |
| secrets: inherit | |
| uses: ./.github/workflows/test-wheel-linux.yml | |
| with: | |
| build-type: nightly | |
| host-platform: linux-aarch64 | |
| build-ctk-ver: ${{ needs.find-wheels.outputs.CUDA_BUILD_VER }} | |
| run-id: ${{ needs.find-wheels.outputs.RUN_ID }} | |
| sha: ${{ needs.find-wheels.outputs.HEAD_SHA }} | |
| test-mode: nightly-pytorch | |
| matrix_filter: 'map(select(.MODE == "nightly-pytorch"))' | |
| test-pytorch-windows: | |
| name: "Nightly PyTorch (win-64)" | |
| if: ${{ github.repository_owner == 'nvidia' }} | |
| needs: find-wheels | |
| permissions: | |
| contents: read | |
| actions: read | |
| secrets: inherit | |
| uses: ./.github/workflows/test-wheel-windows.yml | |
| with: | |
| build-type: nightly | |
| host-platform: win-64 | |
| build-ctk-ver: ${{ needs.find-wheels.outputs.CUDA_BUILD_VER }} | |
| run-id: ${{ needs.find-wheels.outputs.RUN_ID }} | |
| sha: ${{ needs.find-wheels.outputs.HEAD_SHA }} | |
| test-mode: nightly-pytorch | |
| matrix_filter: 'map(select(.MODE == "nightly-pytorch"))' | |
| # ── numba-cuda tests ── | |
| test-numba-cuda-linux-64: | |
| name: "Nightly numba-cuda (linux-64)" | |
| if: ${{ github.repository_owner == 'nvidia' }} | |
| needs: find-wheels | |
| permissions: | |
| contents: read | |
| actions: read | |
| secrets: inherit | |
| uses: ./.github/workflows/test-wheel-linux.yml | |
| with: | |
| build-type: nightly | |
| host-platform: linux-64 | |
| build-ctk-ver: ${{ needs.find-wheels.outputs.CUDA_BUILD_VER }} | |
| run-id: ${{ needs.find-wheels.outputs.RUN_ID }} | |
| sha: ${{ needs.find-wheels.outputs.HEAD_SHA }} | |
| test-mode: nightly-numba-cuda | |
| matrix_filter: 'map(select(.MODE == "nightly-numba-cuda"))' | |
| test-numba-cuda-linux-aarch64: | |
| name: "Nightly numba-cuda (linux-aarch64)" | |
| if: ${{ github.repository_owner == 'nvidia' }} | |
| needs: find-wheels | |
| permissions: | |
| contents: read | |
| actions: read | |
| secrets: inherit | |
| uses: ./.github/workflows/test-wheel-linux.yml | |
| with: | |
| build-type: nightly | |
| host-platform: linux-aarch64 | |
| build-ctk-ver: ${{ needs.find-wheels.outputs.CUDA_BUILD_VER }} | |
| run-id: ${{ needs.find-wheels.outputs.RUN_ID }} | |
| sha: ${{ needs.find-wheels.outputs.HEAD_SHA }} | |
| test-mode: nightly-numba-cuda | |
| matrix_filter: 'map(select(.MODE == "nightly-numba-cuda"))' | |
| test-numba-cuda-windows: | |
| name: "Nightly numba-cuda (win-64)" | |
| if: ${{ github.repository_owner == 'nvidia' }} | |
| needs: find-wheels | |
| permissions: | |
| contents: read | |
| actions: read | |
| secrets: inherit | |
| uses: ./.github/workflows/test-wheel-windows.yml | |
| with: | |
| build-type: nightly | |
| host-platform: win-64 | |
| build-ctk-ver: ${{ needs.find-wheels.outputs.CUDA_BUILD_VER }} | |
| run-id: ${{ needs.find-wheels.outputs.RUN_ID }} | |
| sha: ${{ needs.find-wheels.outputs.HEAD_SHA }} | |
| test-mode: nightly-numba-cuda | |
| matrix_filter: 'map(select(.MODE == "nightly-numba-cuda"))' | |
| # ── Status check ── | |
| checks: | |
| name: Nightly check status | |
| if: always() | |
| runs-on: ubuntu-latest | |
| needs: | |
| - test-pytorch-linux | |
| - test-pytorch-linux-aarch64 | |
| - test-pytorch-windows | |
| - test-numba-cuda-linux-64 | |
| - test-numba-cuda-linux-aarch64 | |
| - test-numba-cuda-windows | |
| steps: | |
| - name: Exit | |
| run: | | |
| # If any dependency was cancelled or failed, that's a failure. | |
| # | |
| # See ci.yml for the full rationale on why we must use always() | |
| # and explicitly check each result rather than relying on the | |
| # default behaviour. | |
| if ${{ needs.test-pytorch-linux.result == 'cancelled' || | |
| needs.test-pytorch-linux.result == 'failure' || | |
| needs.test-pytorch-linux-aarch64.result == 'cancelled' || | |
| needs.test-pytorch-linux-aarch64.result == 'failure' || | |
| needs.test-pytorch-windows.result == 'cancelled' || | |
| needs.test-pytorch-windows.result == 'failure' || | |
| needs.test-numba-cuda-linux-64.result == 'cancelled' || | |
| needs.test-numba-cuda-linux-64.result == 'failure' || | |
| needs.test-numba-cuda-linux-aarch64.result == 'cancelled' || | |
| needs.test-numba-cuda-linux-aarch64.result == 'failure' || | |
| needs.test-numba-cuda-windows.result == 'cancelled' || | |
| needs.test-numba-cuda-windows.result == 'failure' }}; then | |
| exit 1 | |
| fi | |
| exit 0 |