-
Notifications
You must be signed in to change notification settings - Fork 19
135 lines (109 loc) · 3.28 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
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
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Install stable toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
components: rustfmt, 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: Tests check
runs-on: ubuntu-latest
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:
shared-key: "test-compilation"
workspaces: |
.test-node-subtree
tests
- name: Run cargo check for tests
run: cd tests && cargo check
compile-node:
runs-on: ubuntu-latest
name: Compile 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
- 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: "Precompiles tests"
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:
shared-key: "test-compilation"
workspaces: |
.test-node-subtree
tests
- name: Install rust nightly
run: rustup toolchain install nightly --profile minimal --no-self-update
- name: "Run tests"
run: |
make test-ci