Skip to content

Commit e782feb

Browse files
committed
ci: add GPU test job using self-hosted runners
Add a test matrix job that runs on self-hosted GPU runners (AWS EC2 Ampere instances). Tests run inside Docker containers with --gpus all using the pre-built test images from GHCR. Also update all image tags to 2026-03-18 builds which include tileiras 13.2 (adds sm_86 support).
1 parent 2713100 commit e782feb

1 file changed

Lines changed: 66 additions & 6 deletions

File tree

.github/workflows/ci.yml

Lines changed: 66 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,16 @@ jobs:
2020
name: Define Base Images
2121
runs-on: ubuntu-latest
2222
outputs:
23-
lint: ghcr.io/nvidia/cutile-python/lint:2026-03-02-d33a8a50c68d
24-
docs: ghcr.io/nvidia/cutile-python/docs:2026-03-02-2ab6fb9d9368
25-
build_py310: ghcr.io/nvidia/cutile-python/build_py_3.10_x86_64:2026-03-02-c7f3f36001fd
26-
build_py311: ghcr.io/nvidia/cutile-python/build_py_3.11_x86_64:2026-03-02-92c972404358
27-
build_py312: ghcr.io/nvidia/cutile-python/build_py_3.12_x86_64:2026-03-02-299d123ad082
28-
build_py313: ghcr.io/nvidia/cutile-python/build_py_3.13_x86_64:2026-03-02-8eea98e968b5
23+
lint: ghcr.io/nvidia/cutile-python/lint:2026-03-18-3ee906b0ced0
24+
docs: ghcr.io/nvidia/cutile-python/docs:2026-03-18-67c908a4176e
25+
build_py310: ghcr.io/nvidia/cutile-python/build_py_3.10_x86_64:2026-03-18-a2fdea5320fe
26+
build_py311: ghcr.io/nvidia/cutile-python/build_py_3.11_x86_64:2026-03-18-8573f3996301
27+
build_py312: ghcr.io/nvidia/cutile-python/build_py_3.12_x86_64:2026-03-18-63835ff03f5d
28+
build_py313: ghcr.io/nvidia/cutile-python/build_py_3.13_x86_64:2026-03-18-9cadab6c475e
29+
test_py310: ghcr.io/nvidia/cutile-python/test_py_3.10_x86_64:2026-03-18-09e8ff4f33de
30+
test_py311: ghcr.io/nvidia/cutile-python/test_py_3.11_x86_64:2026-03-18-0f68d8d46ac4
31+
test_py312: ghcr.io/nvidia/cutile-python/test_py_3.12_x86_64:2026-03-18-3fe476fda925
32+
test_py313: ghcr.io/nvidia/cutile-python/test_py_3.13_x86_64:2026-03-18-f40db2451d39
2933
steps:
3034
- run: echo "Defining image tags"
3135

@@ -117,3 +121,59 @@ jobs:
117121
path: dist/*.whl
118122
if-no-files-found: error
119123
retention-days: 7
124+
125+
test:
126+
name: Test (Python ${{ matrix.python-version }})
127+
needs: [images, build]
128+
runs-on: [self-hosted, gpu]
129+
timeout-minutes: 60
130+
strategy:
131+
matrix:
132+
include:
133+
- python-version: "3.10"
134+
image_key: test_py310
135+
- python-version: "3.11"
136+
image_key: test_py311
137+
- python-version: "3.12"
138+
image_key: test_py312
139+
- python-version: "3.13"
140+
image_key: test_py313
141+
steps:
142+
- name: Checkout repository
143+
uses: actions/checkout@v6
144+
145+
- name: Download wheel
146+
uses: actions/download-artifact@v4
147+
with:
148+
name: wheel-py${{ matrix.python-version }}-linux-x86_64
149+
path: dist/
150+
151+
- name: Log in to GHCR
152+
uses: docker/login-action@v3
153+
with:
154+
registry: ghcr.io
155+
username: ${{ github.actor }}
156+
password: ${{ secrets.GITHUB_TOKEN }}
157+
158+
- name: Pull test image
159+
run: docker pull ${{ needs.images.outputs[matrix.image_key] }}
160+
161+
- name: Run tests
162+
run: |
163+
docker run --rm --gpus all \
164+
-v "${{ github.workspace }}":/workspace \
165+
-w /workspace \
166+
${{ needs.images.outputs[matrix.image_key] }} \
167+
bash -c "pip install dist/*.whl && \
168+
pytest --ignore internal \
169+
-m 'not benchmark and not use_mlir' \
170+
--durations=10 \
171+
--junitxml=/workspace/test-results.xml"
172+
173+
- name: Upload test results
174+
if: always()
175+
uses: actions/upload-artifact@v4
176+
with:
177+
name: test-results-py${{ matrix.python-version }}
178+
path: test-results.xml
179+
retention-days: 7

0 commit comments

Comments
 (0)