Skip to content

Commit 17c55c5

Browse files
authored
[CI] GPU quick tests (#3433)
Added quick tests to GPU using our server as runner. However, instead of building and running in the same job, uses a similar pipeline as CPU by pretending that `build_gpu` and `test_quick_gpu` are run across different runners, so that this can be adjusted easily once we have proper runners.
1 parent 1b07033 commit 17c55c5

File tree

2 files changed

+72
-1
lines changed

2 files changed

+72
-1
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: "Init testing instance (GPU)"
2+
description: "Initialises a testing instance with all required tools and fetches the precomputed tests archive named `tests_archive_gpu`"
3+
4+
runs:
5+
using: "composite"
6+
steps:
7+
- uses: actions/checkout@v4
8+
with:
9+
submodules: recursive
10+
- name: Download build artifacts (GPU)
11+
uses: actions/download-artifact@v4
12+
with:
13+
name: tests_archive_gpu
14+
- name: Install Rust toolchain nightly-2025-05-14 (with clippy and rustfmt)
15+
shell: bash
16+
run: rustup toolchain install nightly-2025-05-14 --component clippy,rustfmt,rust-src
17+
- name: Install riscv target
18+
shell: bash
19+
run: rustup target add riscv32imac-unknown-none-elf --toolchain nightly-2025-10-01
20+
# TODO: runner on our GPU server has no sudo access, so we manually installed these; uncomment these once we have proper runners
21+
# - name: Install test dependencies
22+
# shell: bash
23+
# run: sudo apt-get update && sudo apt-get install -y binutils-riscv64-unknown-elf lld
24+
- name: Install Rust deps
25+
shell: bash
26+
run: rustup install nightly-2025-10-01 --component rust-src
27+
- name: Install Rust deps
28+
shell: bash
29+
run: rustup install nightly-2025-02-14 --component rust-src
30+
- name: Install OpenVM guest toolchain (nightly-2025-08-02)
31+
shell: bash
32+
run: |
33+
rustup toolchain install nightly-2025-08-02
34+
rustup component add rust-src --toolchain nightly-2025-08-02
35+
- uses: taiki-e/install-action@nextest
36+
37+

.github/workflows/pr-tests.yml

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,4 +199,38 @@ jobs:
199199
- name: Lint no default features
200200
run: cargo clippy --all --all-targets --all-features --profile pr-tests --verbose -- -D warnings
201201
- name: Build (GPU)
202-
run: cargo build --all-targets --all-features --all --profile pr-tests --verbose
202+
run: cargo build --all-targets --all-features --all --profile pr-tests --verbose
203+
- uses: taiki-e/install-action@nextest
204+
- name: Create tests archive (GPU, features=cuda)
205+
run: cargo nextest archive --archive-file tests_gpu.tar.zst --cargo-profile pr-tests --workspace --package powdr-openvm --features cuda
206+
- name: Upload build artifacts (GPU)
207+
uses: actions/upload-artifact@v4
208+
with:
209+
name: tests_archive_gpu
210+
path: |
211+
tests_gpu.tar.zst
212+
213+
test_quick_gpu:
214+
needs: build_gpu
215+
runs-on: [self-hosted, GPU]
216+
# TODO: we only have one runner on our GPU server, so can't partition yet; uncomment these once we have proper runners
217+
# strategy:
218+
# matrix:
219+
# test:
220+
# - "1"
221+
# - "2"
222+
# - "3"
223+
# - "4"
224+
# - "5"
225+
# - "6"
226+
# - "7"
227+
228+
steps:
229+
- uses: actions/checkout@v4
230+
with:
231+
submodules: recursive
232+
- name: Init testing instance (GPU)
233+
uses: ./.github/actions/init-testing-instance-gpu
234+
- name: Run quick GPU tests from powdr-openvm only
235+
run: cargo nextest run --archive-file tests_gpu.tar.zst --workspace-remap . --verbose --no-tests=warn
236+
# run: cargo nextest run --archive-file tests_gpu.tar.zst --workspace-remap . --verbose --partition count:"${{ matrix.test }}"/7 --no-tests=warn

0 commit comments

Comments
 (0)