-
Notifications
You must be signed in to change notification settings - Fork 396
129 lines (109 loc) · 3.43 KB
/
build-and-test-rust.yml
File metadata and controls
129 lines (109 loc) · 3.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: build-and-test-rust-projects
on:
push:
branches: [main]
pull_request:
branches: ["*"]
paths:
- "batcher/**"
- "aggregation_mode/**"
- ".github/workflows/build-rust.yml"
jobs:
build:
runs-on: aligned-runner
steps:
- uses: actions/checkout@v4
- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt, clippy
override: true
# Reference: https://github.com/succinctlabs/sp1/actions/runs/8886659400/workflow#L61-L65
- name: Install sp1 toolchain
run: |
curl -L https://sp1.succinct.xyz | bash
source /home/runner/.bashrc
~/.sp1/bin/sp1up
- name: Install risc0 toolchain
run: |
curl -L https://risczero.com/install | bash
source /home/runner/.bashrc
/home/runner/.risc0/bin/rzup install
/home/runner/.risc0/bin/rzup install cargo-risczero 2.0.1
/home/runner/.risc0/bin/rzup default cargo-risczero 2.0.1
cargo risczero install
- name: Cache Rust dependencies
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
batcher/target
key: ${{ runner.os }}-rust-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-rust-
- name: Check formatting of Batcher
run: |
cd batcher
cargo fmt --all -- --check
- name: Run Clippy on Batcher
run: |
cd batcher
cargo clippy --all -- -D warnings
- name: Build Batcher
run: |
cd batcher
cargo build --all
- name: Check formatting of AggregationMode
run: |
cd aggregation_mode
cargo fmt --all -- --check
- name: Build AggregationMode # We build before clippy to generate the ELF
run: |
cd aggregation_mode
cargo build --all
- name: Run Clippy on AggregationMode
run: |
cd aggregation_mode
cargo clippy --all -- -D warnings
test:
runs-on: aligned-runner
needs: build
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: foundry-toolchain
uses: foundry-rs/foundry-toolchain@v1.2.0
# Reference: https://github.com/succinctlabs/sp1/actions/runs/8886659400/workflow#L61-L65
- name: Install sp1 toolchain
run: |
curl -L https://sp1.succinct.xyz | bash
source /home/runner/.bashrc
~/.sp1/bin/sp1up
- name: Install risc0 toolchain
run: |
curl -L https://risczero.com/install | bash
source /home/runner/.bashrc
/home/runner/.risc0/bin/rzup install
/home/runner/.risc0/bin/rzup install cargo-risczero 2.0.1
/home/runner/.risc0/bin/rzup default cargo-risczero 2.0.1
cargo risczero install
- name: Cache Rust dependencies
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
batcher/target
key: ${{ runner.os }}-rust-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-rust-
- name: Run Batcher tests
run: |
cd batcher
cargo test --all
- name: Run AggregationMode tests
run: |
cd aggregation_mode
cargo test --all