3838 strategy :
3939 fail-fast : false
4040 matrix :
41- # ``container_image`` is the full image path so non-nvcr.io registries
42- # (e.g. docker.io/vllm) can be used alongside nvcr.io/nvidia images.
4341 include :
4442 - example : gpu
4543 timeout : 75
@@ -50,54 +48,50 @@ jobs:
5048 - example : gpu_trtllm
5149 timeout : 30
5250 container_image : nvcr.io/nvidia/tensorrt-llm/release:1.3.0rc12
53- - example : gpu_vllm
54- timeout : 30
55- # Keep in sync with examples/vllm_serve/Dockerfile.
56- container_image : docker.io/vllm/vllm-openai:v0.20.0
5751 runs-on : ${{ startsWith(github.ref, 'refs/heads/pull-request/') && 'linux-amd64-gpu-rtxpro6000-latest-1' || 'linux-amd64-gpu-rtxpro6000-latest-2' }}
5852 timeout-minutes : ${{ matrix.timeout }}
5953 container :
6054 image : ${{ matrix.container_image }}
61- # NGC creds only for ``nvcr.io/*`` images; ``docker.io/*`` is anonymous-pull.
62- # Empty username/password short-circuits the runner's ``docker login`` step.
6355 credentials :
64- username : ${{ startsWith(matrix.container_image, 'nvcr.io/') && '$oauthtoken' || '' }}
65- password : ${{ startsWith(matrix.container_image, 'nvcr.io/') && secrets.NGC_API_KEY || '' }}
56+ username : $oauthtoken
57+ password : ${{ secrets.NGC_API_KEY }}
58+ env :
59+ GIT_DEPTH : 1000 # For correct version
60+ PIP_CONSTRAINT : " " # Disable pip constraint for upgrading packages
61+ HF_TOKEN : ${{ secrets.HF_TOKEN }}
62+ steps :
63+ - uses : actions/checkout@v6
64+ - uses : ./.github/actions/gpu-test-run
65+ with :
66+ example : ${{ matrix.example }}
67+ codecov_token : ${{ secrets.CODECOV_TOKEN }}
68+
69+ # Docker Hub image: anonymous pull (no ``credentials:``) and no coverage
70+ gpu-tests-vllm :
71+ needs : [pr-gate]
72+ if : needs.pr-gate.outputs.any_changed == 'true'
73+ runs-on : ${{ startsWith(github.ref, 'refs/heads/pull-request/') && 'linux-amd64-gpu-rtxpro6000-latest-1' || 'linux-amd64-gpu-rtxpro6000-latest-2' }}
74+ timeout-minutes : 30
75+ container :
76+ # Keep in sync with examples/vllm_serve/Dockerfile.
77+ image : docker.io/vllm/vllm-openai:v0.20.0
6678 env :
6779 GIT_DEPTH : 1000 # For correct version
6880 PIP_CONSTRAINT : " " # Disable pip constraint for upgrading packages
6981 HF_TOKEN : ${{ secrets.HF_TOKEN }}
7082 steps :
7183 - uses : actions/checkout@v6
72- - uses : nv-gha-runners/setup-proxy-cache@main
73- - name : Setup environment variables
74- run : |
75- echo "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/include:/usr/lib/x86_64-linux-gnu" >> $GITHUB_ENV
76- - name : Run gpu tests
77- env :
78- # Skip subprocess coverage for gpu_vllm — the hook deadlocks vLLM's engine-core IPC.
79- COVERAGE_PROCESS_START : ${{ matrix.example == 'gpu_vllm' && '' || format('{0}/pyproject.toml', github.workspace) }}
80- COVERAGE_FILE : ${{ github.workspace }}/.coverage
81- run : |
82- python3 -m pip install nox && nox -s ${{ matrix.example }}
83- - name : Upload GPU coverage to Codecov
84- # vLLM container has no ``git``, which codecov-action needs; gpu_vllm
85- # also runs without ``--cov`` so there's no coverage.xml to upload.
86- if : matrix.example != 'gpu_vllm'
87- uses : codecov/codecov-action@v5
84+ - uses : ./.github/actions/gpu-test-run
8885 with :
89- token : ${{ secrets.CODECOV_TOKEN }}
90- files : coverage.xml
91- flags : gpu
92- fail_ci_if_error : false # test may be skipped if relevant file changes are not detected
93- verbose : true
86+ example : gpu_vllm
87+ with_coverage : " false"
9488
9589 gpu-pr-required-check :
96- # Run even if gpu-tests is skipped
90+ # Run even if any of the gpu jobs is skipped
9791 if : ${{ startsWith(github.ref, 'refs/heads/pull-request/') && always() }}
98- needs : [pr-gate, gpu-tests]
92+ needs : [pr-gate, gpu-tests, gpu-tests-vllm ]
9993 runs-on : ubuntu-latest
10094 steps :
10195 - name : Required GPU tests did not succeed
102- if : ${{ needs.pr-gate.result != 'success' || (needs.pr-gate.outputs.any_changed == 'true' && needs.gpu-tests.result != 'success') }}
96+ if : ${{ needs.pr-gate.result != 'success' || (needs.pr-gate.outputs.any_changed == 'true' && ( needs.gpu-tests.result != 'success' || needs.gpu-tests-vllm.result != 'success') ) }}
10397 run : exit 1
0 commit comments