A few CI improvements #316
Workflow file for this run
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
name: CI on Windows | |
on: | |
pull_request: | |
paths-ignore: | |
- "**.md" | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- "**.md" | |
env: | |
RUST_LOG: info | |
RUST_BACKTRACE: 1 | |
jobs: | |
rust: | |
name: Build / ${{ matrix.os }} / CUDA-${{ matrix.cuda }} | |
runs-on: ${{ matrix.os }} | |
env: | |
LLVM_LINK_STATIC: 1 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: windows-latest | |
target: x86_64-pc-windows-msvc | |
cuda: "12.8.1" | |
linux-local-args: [] | |
sub-packages: | |
[ | |
"nvcc", | |
"nvrtc", | |
"nvrtc_dev", | |
"cuda_profiler_api", | |
"cudart", | |
"cublas", | |
"cublas_dev", | |
"curand", | |
"curand_dev", | |
] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install CUDA | |
uses: Jimver/[email protected] | |
id: cuda-toolkit | |
with: | |
cuda: ${{ matrix.cuda }} | |
method: network | |
linux-local-args: ${{ toJson(matrix.linux-local-args) }} | |
use-local-cache: false | |
sub-packages: ${{ toJson(matrix.sub-packages) }} | |
log-file-suffix: "${{matrix.os}}-${{matrix.cuda}}" | |
- name: List CUDA_PATH files | |
shell: pwsh | |
run: Get-ChildItem -Path $env:CUDA_PATH -Recurse | ForEach-Object { $_.FullName } | |
# random command that forces rustup to install stuff in rust-toolchain | |
- name: Install rust-toolchain | |
run: cargo version | |
- name: Add rustup components | |
run: rustup component add rustfmt clippy | |
- name: Verify CUDA, Rust installation | |
run: | | |
nvcc --version | |
rustup show | |
- name: Load Rust Cache | |
uses: Swatinem/[email protected] | |
with: | |
key: ${{ matrix.os }}-${{ matrix.target }}-${{ matrix.cuda }} | |
- name: Rustfmt | |
run: cargo fmt --all -- --check | |
- name: Build all bindings | |
run: cargo build --all-features -p cust_raw | |
- name: Build workspace | |
run: cargo build --workspace --exclude "optix*" --exclude "path-tracer" --exclude "denoiser" --exclude "vecadd*" --exclude "gemm*" --exclude "ex0*" --exclude "cudnn*" --exclude "sha2*" | |
- name: Clippy | |
env: | |
RUSTFLAGS: -Dwarnings | |
run: cargo clippy --workspace --exclude "optix*" --exclude "path-tracer" --exclude "denoiser" --exclude "vecadd*" --exclude "gemm*" --exclude "ex0*" --exclude "cudnn*" --exclude "sha2*" | |
# Don't currently test because many tests rely on the system having a CUDA GPU | |
# - name: Test | |
# run: cargo test --workspace | |
- name: Check documentation | |
env: | |
RUSTDOCFLAGS: -Dwarnings | |
run: cargo doc --workspace --all-features --document-private-items --no-deps --exclude "optix*" --exclude "path-tracer" --exclude "denoiser" --exclude "vecadd*" --exclude "gemm*" --exclude "ex0*" --exclude "cudnn*" --exclude "sha2*" --exclude "cust_raw" | |
# Disabled due to dll issues, someone with Windows knowledge needed | |
# - name: Compiletest | |
# run: cargo run -p compiletests --release --no-default-features -- --target-arch compute_61,compute_70,compute_90 |