Improve tests #1019
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 NVIDIA CORPORATION & AFFILIATES. All rights reserved. | |
# | |
# SPDX-License-Identifier: Apache-2.0 | |
# Note: This name is referred to in the test job, so make sure any changes are sync'd up! | |
# Further this is referencing a run in the backport branch to fetch old bindings. | |
name: "CI" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} | |
cancel-in-progress: true | |
on: | |
push: | |
branches: | |
- "pull-request/[0-9]+" | |
- "main" | |
jobs: | |
ci-vars: | |
runs-on: ubuntu-latest | |
outputs: | |
CUDA_BUILD_VER: ${{ steps.get-vars.outputs.cuda_build_ver }} | |
CUDA_PREV_BUILD_VER: ${{ steps.get-vars.outputs.cuda_prev_build_ver }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
fetch-depth: 0 | |
- name: Get CUDA build versions | |
id: get-vars | |
run: | | |
cuda_build_ver=$(jq -r .cuda.build.version ci/versions.json) | |
echo "cuda_build_ver=$cuda_build_ver" >> $GITHUB_OUTPUT | |
cuda_prev_build_ver=$(jq -r .cuda.prev_build.version ci/versions.json) | |
echo "cuda_prev_build_ver=$cuda_prev_build_ver" >> $GITHUB_OUTPUT | |
should-skip: | |
runs-on: ubuntu-latest | |
outputs: | |
skip: ${{ steps.get-should-skip.outputs.skip }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
- name: Compute whether to skip builds and tests | |
id: get-should-skip | |
env: | |
GH_TOKEN: ${{ github.token }} | |
run: | | |
set -euxo pipefail | |
if ${{ startsWith(github.ref_name, 'pull-request/') }}; then | |
skip="$(gh pr view "$(grep -Po '(\d+)$' <<< '${{ github.ref_name }}')" --json title --jq '.title | contains("[no-ci]")')" | |
else | |
skip=false | |
fi | |
echo "skip=${skip}" >> "$GITHUB_OUTPUT" | |
# WARNING: make sure all of the build jobs are in sync | |
build-linux-64: | |
needs: | |
- ci-vars | |
- should-skip | |
strategy: | |
fail-fast: false | |
matrix: | |
host-platform: | |
- linux-64 | |
name: Build ${{ matrix.host-platform }}, CUDA ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }} | |
if: ${{ github.repository_owner == 'nvidia' && !fromJSON(needs.should-skip.outputs.skip) }} | |
secrets: inherit | |
uses: ./.github/workflows/build-wheel.yml | |
with: | |
host-platform: ${{ matrix.host-platform }} | |
cuda-version: ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }} | |
prev-cuda-version: ${{ needs.ci-vars.outputs.CUDA_PREV_BUILD_VER }} | |
# WARNING: make sure all of the build jobs are in sync | |
build-linux-aarch64: | |
needs: | |
- ci-vars | |
- should-skip | |
strategy: | |
fail-fast: false | |
matrix: | |
host-platform: | |
- linux-aarch64 | |
name: Build ${{ matrix.host-platform }}, CUDA ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }} | |
if: ${{ github.repository_owner == 'nvidia' && !fromJSON(needs.should-skip.outputs.skip) }} | |
secrets: inherit | |
uses: ./.github/workflows/build-wheel.yml | |
with: | |
host-platform: ${{ matrix.host-platform }} | |
cuda-version: ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }} | |
prev-cuda-version: ${{ needs.ci-vars.outputs.CUDA_PREV_BUILD_VER }} | |
# WARNING: make sure all of the build jobs are in sync | |
build-windows: | |
needs: | |
- ci-vars | |
- should-skip | |
strategy: | |
fail-fast: false | |
matrix: | |
host-platform: | |
- win-64 | |
name: Build ${{ matrix.host-platform }}, CUDA ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }} | |
if: ${{ github.repository_owner == 'nvidia' && !fromJSON(needs.should-skip.outputs.skip) }} | |
secrets: inherit | |
uses: ./.github/workflows/build-wheel.yml | |
with: | |
host-platform: ${{ matrix.host-platform }} | |
cuda-version: ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }} | |
prev-cuda-version: ${{ needs.ci-vars.outputs.CUDA_PREV_BUILD_VER }} | |
# WARNING: make sure both Linux test jobs are in sync | |
test-linux-64: | |
strategy: | |
fail-fast: false | |
matrix: | |
host-platform: | |
- linux-64 | |
name: Test ${{ matrix.host-platform }} | |
if: ${{ github.repository_owner == 'nvidia' }} | |
permissions: | |
contents: read # This is required for actions/checkout | |
needs: | |
- ci-vars | |
- build-linux-64 | |
secrets: inherit | |
uses: ./.github/workflows/test-wheel-linux.yml | |
with: | |
build-type: pull-request | |
host-platform: ${{ matrix.host-platform }} | |
build-ctk-ver: ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }} | |
# WARNING: make sure both Linux test jobs are in sync | |
test-linux-aarch64: | |
strategy: | |
fail-fast: false | |
matrix: | |
host-platform: | |
- linux-aarch64 | |
name: Test ${{ matrix.host-platform }} | |
if: ${{ github.repository_owner == 'nvidia' }} | |
permissions: | |
contents: read # This is required for actions/checkout | |
needs: | |
- ci-vars | |
- build-linux-aarch64 | |
secrets: inherit | |
uses: ./.github/workflows/test-wheel-linux.yml | |
with: | |
build-type: pull-request | |
host-platform: ${{ matrix.host-platform }} | |
build-ctk-ver: ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }} | |
test-windows: | |
strategy: | |
fail-fast: false | |
matrix: | |
host-platform: | |
- win-64 | |
name: Test ${{ matrix.host-platform }} | |
if: ${{ github.repository_owner == 'nvidia' }} | |
permissions: | |
contents: read # This is required for actions/checkout | |
needs: | |
- ci-vars | |
- build-windows | |
secrets: inherit | |
uses: ./.github/workflows/test-wheel-windows.yml | |
with: | |
build-type: pull-request | |
host-platform: ${{ matrix.host-platform }} | |
build-ctk-ver: ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }} | |
doc: | |
name: Docs | |
if: ${{ github.repository_owner == 'nvidia' }} | |
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | |
permissions: | |
id-token: write | |
contents: write | |
pull-requests: write | |
needs: | |
- ci-vars | |
- build-linux-64 | |
secrets: inherit | |
uses: ./.github/workflows/build-docs.yml | |
with: | |
build-ctk-ver: ${{ needs.ci-vars.outputs.CUDA_BUILD_VER }} | |
checks: | |
name: Check job status | |
if: always() | |
runs-on: ubuntu-latest | |
needs: | |
- test-linux-64 | |
- test-linux-aarch64 | |
- test-windows | |
- doc | |
steps: | |
- name: Exit | |
run: exit 0 |