-
Notifications
You must be signed in to change notification settings - Fork 19
148 lines (120 loc) · 3.62 KB
/
ci.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
145
146
147
148
name: CI
on:
merge_group:
push:
branches: [main]
pull_request:
branches: ["*"]
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
lint:
name: Lint Tests Code
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Set up cargo cache
uses: Swatinem/rust-cache@v2
with:
workspaces: |
.test-node-subtree
tests
shared-key: "cache"
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@nightly
- name: Install rust nightly
run: |
rustup toolchain install nightly
rustup component add rustfmt
rustup component add clippy
- name: Run cargo fmt
run: cd tests && cargo fmt --all -- --check
- name: Run clippy
run: cd tests && cargo clippy --all-targets --all-features -- -D warnings
compile-tests:
name: Cargo check for Tests Code
needs: lint
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Set up cargo cache
uses: Swatinem/rust-cache@v2
with:
workspaces: |
.test-node-subtree
tests
shared-key: "cache"
- name: Rustup toolchain install
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: nightly
targets: x86_64-unknown-linux-gnu
- name: Install rust nightly
run: rustup toolchain install nightly --profile minimal --no-self-update
- name: Run cargo check for tests
run: cd tests && cargo check
compile-node:
runs-on: ubuntu-latest
name: Compile Test Node and Contracts
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Add solc
run: |
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt install solc
- name: Rustup toolchain install
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: nightly
targets: x86_64-unknown-linux-gnu
- name: Install rust nightly
run: rustup toolchain install nightly --profile minimal --no-self-update
- name: Set up cargo cache
uses: Swatinem/rust-cache@v2
with:
workspaces: |
.test-node-subtree
tests
shared-key: "cache"
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 18.18.0
- name: Install dependencies and build node
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: build-essential cmake pkg-config libssl-dev clang
version: 1.0
- name: Build node
run: |
make build-node
precompiles:
name: Run Tests For Precompiles
runs-on: ubuntu-latest
needs: [compile-node, compile-tests]
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Rustup toolchain install
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: nightly
targets: x86_64-unknown-linux-gnu
- name: Install rust nightly
run: rustup toolchain install nightly --profile minimal --no-self-update
- name: Set up cargo cache
uses: Swatinem/rust-cache@v2
with:
workspaces: |
.test-node-subtree
tests
shared-key: "cache"
- name: Install rust nightly
run: rustup toolchain install nightly --profile minimal --no-self-update
- name: "Run tests"
run: |
make test-ci