-
Notifications
You must be signed in to change notification settings - Fork 396
135 lines (114 loc) · 3.53 KB
/
build-and-test-rust.yml
File metadata and controls
135 lines (114 loc) · 3.53 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
130
131
132
133
134
135
name: build-and-test-rust-projects
on:
push:
branches:
- testnet
- staging
pull_request:
branches: ["*"]
paths:
- "crates/**"
- "aggregation_mode/**"
- ".github/workflows/build-and-test-rust.yml"
jobs:
build:
runs-on: aligned-runner
steps:
- uses: actions/checkout@v4
- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.88.0
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 ~/.bashrc
~/.risc0/bin/rzup install
- name: Cache Rust dependencies
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
crates/target
key: ${{ runner.os }}-rust-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-rust-
- name: Check formatting
run: |
cd crates
cargo fmt --all -- --check
- name: Run Clippy
run: |
cd crates
# TODO: solve this issues instead of ignoring
cargo clippy --all -- -D warnings -A clippy::uninlined_format_args
- name: Build Batcher
run: |
cd crates
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
# We need to skip the build as clippy does not support the riscv32im-risc0-zkvm-elf target
RISC0_SKIP_BUILD=1 cargo clippy --all -- -D warnings
test:
runs-on: aligned-runner
needs: build
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: 1.88.0
components: rustfmt, clippy
override: true
- 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 ~/.bashrc
~/.risc0/bin/rzup install
- name: Cache Rust dependencies
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
crates/target
key: ${{ runner.os }}-rust-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-rust-
- name: Run Batcher tests
run: |
cd crates
cargo test --all
- name: Run AggregationMode tests
run: |
cd aggregation_mode/proof_aggregator && cargo test
cd ../gateway && cargo test
cd ../payments_poller && cargo test