-
Notifications
You must be signed in to change notification settings - Fork 37
144 lines (118 loc) · 3.39 KB
/
ci_levm.yaml
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
136
137
138
139
140
141
142
143
144
name: LEVM
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "**" ]
paths:
- "crates/vm/levm/**"
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
RUST_VERSION: 1.81.0
jobs:
ef-test:
# "Integration Test" is a required check, don't change the name
name: Integration Test
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Rustup toolchain install
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.RUST_VERSION }}
- name: Caching
uses: Swatinem/rust-cache@v2
- name: Download EF Tests
run: |
cd crates/vm/levm
make download-evm-ef-tests
- name: Run tests
run: |
cd crates/vm/levm
make run-evm-ef-tests-ci | tee test_result.txt
- name: Show test summary -- full
run: |
cd crates/vm/levm && awk '/Summary: /,0' test_result.txt
- name: Show test summary -- short
run: |
cd crates/vm/levm && awk '/Summary: /,/Frontier/' test_result.txt;
- name: Check EF-TESTS status is 100%
run: |
cd crates/vm/levm
if [ "$(awk '/Summary:/ {print $(NF)}' test_result.txt)" != "(100.00%)" ]; then
echo "Percentage is not 100%."
exit 1
fi
test:
# "Test" is a required check, don't change the name
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Rustup toolchain install
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.RUST_VERSION }}
- name: Caching
uses: Swatinem/rust-cache@v2
- name: Run tests
run: |
cd crates/vm/levm
make test
bench:
name: Benchmarks (LEVM vs REVM)
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Rustup toolchain install
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.RUST_VERSION }}
- name: Set up cargo cache
uses: Swatinem/rust-cache@v2
- name: Install hyperfine
uses: taiki-e/install-action@v2
with:
tool: hyperfine@1.16
- name: Install solc
uses: pontem-network/get-solc@master
- name: Run benchmarks
run: |
cd crates/vm/levm
make revm-comparison
lint:
# "Lint" is a required check, don't change the name
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Rustup toolchain install
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.RUST_VERSION }}
components: rustfmt, clippy
- name: Add Rust Cache
uses: Swatinem/rust-cache@v2
- name: Run cargo check
run: |
cd crates/vm/levm
cargo check
- name: Run cargo build
run: |
cd crates/vm/levm
cargo build
- name: Run cargo clippy
run: |
cd crates/vm/levm
cargo clippy --all-targets --all-features -- -D warnings
- name: Run cargo fmt
run: |
cd crates/vm/levm
cargo fmt --all -- --check