-
Notifications
You must be signed in to change notification settings - Fork 19
130 lines (106 loc) · 3.19 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
on:
merge_group:
push:
branches: [main]
pull_request:
branches: ["*"]
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
precompiles-in-git-ignore:
name: Every pre-compile artifact is in git-ignore
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Run check
run: |
make check-git-ignore
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
check-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
precompiles:
name: Compile node and run tests
runs-on: ubuntu-latest
needs: [check-tests, precompiles-in-git-ignore]
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Add solc
run: |
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get install solc
- name: Rustup toolchain install
uses: dtolnay/rust-toolchain@nightly
with:
toolchain: nightly
targets: x86_64-unknown-linux-gnu
- 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: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 18.18.0
- name: Install dependencies and build node + precompiles
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: build-essential make cross-gcc-dev cmake pkg-config libssl-dev clang
version: 1.0
- name: Start nodes + Run tests
run: |
make test-ci
- name: Print era test node logs
run: |
cat era_node.log