1+ name : Rust CI
2+
3+ on :
4+ push :
5+ paths :
6+ - ' packages/contracts/**'
7+ - ' packages/sdk-platforms/**'
8+
9+ jobs :
10+ rust-sdk :
11+ name : Rust SDK - latest
12+ runs-on : ubuntu-latest
13+ strategy :
14+ matrix :
15+ config :
16+ - debug
17+ steps :
18+ - uses : actions/checkout@v4
19+ with :
20+ submodules : recursive
21+
22+ - name : Run sccache-cache
23+ uses : mozilla-actions/sccache-action@v0.0.4
24+
25+ - name : Install Rust
26+ run : |
27+ rustup update stable && rustup default stable
28+ rustup toolchain install nightly
29+
30+ - name : Run rustfmt
31+ run : |
32+ rustup component add rustfmt --toolchain nightly
33+ cargo +nightly fmt --all -- --check
34+ working-directory : packages/sdk-platforms/rust/zksync-sso
35+
36+ - name : Install Anvil ZKsync Manually
37+ run : |
38+ SCRIPT_PATH=".github/workflows/scripts/install-anvil-zksync.sh"
39+ chmod +x "$SCRIPT_PATH"
40+ sh "$SCRIPT_PATH"
41+
42+ - name : Setup pnpm
43+ uses : pnpm/action-setup@v4
44+ with :
45+ version : 9.11.0
46+
47+ - name : Use Node.js
48+ uses : actions/setup-node@v4
49+ with :
50+ node-version : lts/Iron
51+ cache : pnpm
52+
53+ - name : Install dependencies
54+ run : pnpm install -r --frozen-lockfile
55+
56+ - name : Install contract dependencies
57+ run : pnpm install -r --frozen-lockfile
58+ working-directory : packages/contracts
59+
60+ - name : Build contracts
61+ run : pnpm build
62+ working-directory : packages/contracts
63+
64+ - name : Run clippy
65+ run : |
66+ rustup component add clippy --toolchain stable
67+ cargo clippy --all-targets -- -D warnings
68+ working-directory : packages/sdk-platforms/rust/zksync-sso
69+
70+ - name : Run rust tests
71+ run : cargo test
72+ working-directory : packages/sdk-platforms/rust/zksync-sso
0 commit comments