1+ name : Rust CI
2+
3+ on :
4+ push :
5+ branches :
6+ - master
7+ pull_request :
8+ branches :
9+ - master
10+
11+ env :
12+ CARGO_TERM_COLOR : always
13+
14+ jobs :
15+ test :
16+ name : Test Rust Shaders
17+ runs-on : ${{ matrix.os }}
18+ strategy :
19+ matrix :
20+ os : [ubuntu-latest, windows-latest, macos-latest]
21+
22+ steps :
23+ - uses : actions/checkout@v4
24+ with :
25+ submodules : " recursive"
26+
27+ - name : Install Rust
28+ uses : dtolnay/rust-toolchain@stable
29+ with :
30+ components : rust-src, rustc-dev, llvm-tools
31+
32+ - name : Install cargo-gpu
33+ run : cargo install --git https://github.com/rust-gpu/cargo-gpu cargo-gpu
34+
35+ - name : Cache cargo registry
36+ uses : actions/cache@v3
37+ with :
38+ path : |
39+ ~/.cargo/registry
40+ ~/.cargo/git
41+ key : ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
42+
43+ - name : Compile shaders to SPIR-V
44+ working-directory : shaders/rust
45+ run : python3 compileshaders.py
46+
47+ - name : Verify no uncommitted changes
48+ run : |
49+ # Check if there are any changes to tracked files
50+ if ! git diff --exit-code; then
51+ echo "Error: Generated SPIR-V files differ from checked-in versions"
52+ echo "Please run 'python3 compileshaders.py' locally and commit the changes"
53+ git diff --name-only
54+ exit 1
55+ fi
56+
57+ # Check for untracked files
58+ if [ -n "$(git ls-files --others --exclude-standard)" ]; then
59+ echo "Error: New untracked files were generated"
60+ echo "Please add these files to git or update .gitignore:"
61+ git ls-files --others --exclude-standard
62+ exit 1
63+ fi
0 commit comments