@@ -140,9 +140,9 @@ jobs:
140140 repo-token : ${{ secrets.GITHUB_TOKEN }}
141141 - name : Docs
142142 run : |
143- RUSTDOCFLAGS="-D warnings" cargo doc --no-deps
143+ RUSTFLAGS="--cfg gpu_unstable" RUSTDOCFLAGS="-D warnings" cargo doc --no-deps
144144 # nextest doesn't support doc tests, so we run it here
145- cargo test --doc --workspace --all-features --exclude vortex-cxx --exclude vortex-jni --exclude vortex-ffi --exclude xtask --no-fail-fast
145+ RUSTFLAGS="--cfg gpu_unstable" cargo test --doc --workspace --all-features --exclude vortex-cxx --exclude vortex-jni --exclude vortex-ffi --exclude xtask --no-fail-fast
146146
147147 build-rust :
148148 name : " Rust build (${{matrix.config.name}})"
@@ -156,7 +156,7 @@ jobs:
156156 - tag=${{ matrix.config.name }}
157157 env :
158158 # disable lints for build, they will be caught in Rust lint job.
159- RUSTFLAGS : " -A warnings"
159+ RUSTFLAGS : " -A warnings --cfg gpu_unstable "
160160 strategy :
161161 fail-fast : false
162162 matrix :
@@ -175,7 +175,7 @@ jobs:
175175 target : wasm32-unknown-unknown
176176 env :
177177 rustflags : " RUSTFLAGS='-A warnings --cfg getrandom_backend=\" wasm_js\" '"
178- args : " --target wasm32-unknown-unknown --exclude vortex --exclude vortex-datafusion --exclude vortex-duckdb --exclude vortex-tui --exclude vortex-zstd"
178+ args : " --target wasm32-unknown-unknown --exclude vortex --exclude vortex-datafusion --exclude vortex-duckdb --exclude vortex-tui --exclude vortex-zstd --exclude vortex-gpu "
179179 steps :
180180 - uses : runs-on/action@v2
181181 with :
@@ -199,6 +199,8 @@ jobs:
199199 check-min-deps :
200200 name : " Check build with minimal dependencies"
201201 timeout-minutes : 120
202+ env :
203+ RUSTFLAGS : " --cfg gpu_unstable"
202204 runs-on :
203205 - runs-on=${{ github.run_id }}
204206 - family=m7i+m7i-flex+m7a
@@ -221,6 +223,8 @@ jobs:
221223 rust-lint :
222224 name : " Rust (lint)"
223225 timeout-minutes : 120
226+ env :
227+ RUSTFLAGS : " --cfg gpu_unstable"
224228 runs-on :
225229 - runs-on=${{ github.run_id }}
226230 - family=m7i+m7i-flex+m7a
@@ -249,6 +253,8 @@ jobs:
249253 rust-lint-no-default :
250254 name : " Rust (lint, no default)"
251255 timeout-minutes : 120
256+ env :
257+ RUSTFLAGS : " --cfg gpu_unstable"
252258 runs-on :
253259 - runs-on=${{ github.run_id }}
254260 - family=m7i+m7i-flex+m7a
@@ -313,7 +319,7 @@ jobs:
313319 - name : Rust Tests
314320 if : ${{ matrix.suite == 'tests' }}
315321 run : |
316- cargo +nightly nextest run --locked --workspace --all-features --no-fail-fast
322+ cargo +nightly nextest run --locked --workspace --exclude vortex-gpu -- all-features --no-fail-fast
317323 - name : Run TPC-H
318324 if : ${{ matrix.suite == 'tpc-h' }}
319325 # We use i2 to ensure that restarting the duckdb connection succeeds
@@ -333,6 +339,7 @@ jobs:
333339 --ignore 'vortex-python/*' --ignore 'vortex-jni/*' --ignore 'vortex-flatbuffers/*' \
334340 --ignore 'vortex-proto/*' --ignore 'vortex-tui/*' --ignore 'vortex-datafusion/examples/*' \
335341 --ignore 'vortex-ffi/examples/*' --ignore '*/arbitrary/*' --ignore '*/arbitrary.rs' --ignore 'vortex-cxx/*' \
342+ --ignore 'vortex-gpu/*' \
336343 -o ${{ env.GRCOV_OUTPUT_FILE }}
337344 - name : Codecov
338345 uses : codecov/codecov-action@v5
@@ -389,16 +396,65 @@ jobs:
389396 - name : Rust Tests
390397 run : |
391398 # Build with full debug info first (helps with caching)
392- cargo +nightly build --locked --workspace --all-features --target x86_64-unknown-linux-gnu
399+ cargo +nightly build --locked --workspace --exclude vortex-gpu -- all-features --target x86_64-unknown-linux-gnu
393400 # Run tests with sanitizers and debug output
394401 cargo +nightly nextest run \
395402 --locked \
396403 --workspace \
404+ --exclude vortex-gpu \
405+ --all-features \
406+ --no-fail-fast \
407+ --target x86_64-unknown-linux-gnu \
408+ --verbose
409+
410+ gpu-test :
411+ name : " GPU tests"
412+ timeout-minutes : 120
413+ runs-on :
414+ - runs-on=${{ github.run_id }}
415+ - family=g5
416+ - cpu=8
417+ - image=ubuntu24-gpu-x64
418+ - extras=s3-cache
419+ - tag=cuda-tests
420+ env :
421+ # Keep frame pointers for better stack traces
422+ CARGO_PROFILE_DEV_DEBUG : " true"
423+ CARGO_PROFILE_TEST_DEBUG : " true"
424+ RUSTFLAGS : " --cfg gpu_unstable"
425+ steps :
426+ - uses : runs-on/action@v2
427+ with :
428+ sccache : s3
429+ - name : Display NVIDIA SMI details
430+ run : |
431+ nvidia-smi
432+ nvidia-smi -L
433+ nvidia-smi -q -d Memory
434+ - uses : actions/checkout@v5
435+ - uses : ./.github/actions/setup-rust
436+ with :
437+ repo-token : ${{ secrets.GITHUB_TOKEN }}
438+ toolchain : nightly
439+ components : " rust-src, rustfmt, clippy, llvm-tools-preview"
440+ - name : Install nextest
441+ uses : taiki-e/install-action@v2
442+ with :
443+ tool : nextest
444+ - name : Rust Tests
445+ run : |
446+ # Build with full debug info first (helps with caching)
447+ cargo +nightly build --locked -p vortex-gpu --all-features --target x86_64-unknown-linux-gnu
448+ # Run tests with sanitizers and debug output
449+ cargo +nightly nextest run \
450+ --locked \
451+ -p vortex-gpu \
397452 --all-features \
398453 --no-fail-fast \
399454 --target x86_64-unknown-linux-gnu \
400455 --verbose
401456
457+
402458 build-java :
403459 name : " Java"
404460 runs-on : ubuntu-latest
@@ -462,6 +518,7 @@ jobs:
462518 --exclude vortex-datafusion \
463519 --exclude vortex-duckdb \
464520 --exclude vortex-fuzz \
521+ --exclude vortex-gpu \
465522 --exclude vortex-python \
466523 --exclude vortex-tui \
467524 --exclude xtask \
0 commit comments