-
Notifications
You must be signed in to change notification settings - Fork 19
145 lines (120 loc) · 3.5 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
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
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
build-node:
name: Compile node
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
# - name: Add solc to path
# run: |
# chmod +x ./ci/solc
# echo "export PATH=\$PATH:$(pwd)/ci" >> $GITHUB_PATH
- 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: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 18.18.0
- name: Install yarn
run: npm install -g yarn
- name: Install native dependencies
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: Compile node and run tests
runs-on: ubuntu-latest
needs: [check-tests, build-node]
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: Run tests
run: |
make test-ci
- name: Print era test node logs
run: |
cat era_node.log