-
Notifications
You must be signed in to change notification settings - Fork 26
230 lines (204 loc) · 6.82 KB
/
default.yml
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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
name: Lint Check && nextest && build
on:
push:
branches:
- main
- develop
pull_request:
branches:
- main
- develop
workflow_dispatch:
env:
CARGO_SCCACHE_COMMIT: bed5571c
jobs:
# cargo_nextest:
# name: "Cargo Nextest (${{matrix.name}})"
# runs-on: ${{ matrix.os }}
# strategy:
# fail-fast: false
# matrix:
# include:
# - name: Linux
# id: linux
# os: ubuntu-latest
# type: stable
# runs_integ_tests: true
# upload_profraws: true
# - name: Linux Nightly
# id: linux-nightly
# os: ubuntu-latest
# type: nightly
# runs_integ_tests: true
# upload_profraws: true
# timeout-minutes: 90
# steps:
# - uses: actions/checkout@v4
# # Install all the required tools
# - uses: taiki-e/install-action@9b5b983efc779f85e5e5d11539f005e85ccb27ff
# with:
# tool: just,cargo-nextest,cargo-llvm-cov
# # Run the tests:
# - run: mkdir -p coverage/profraw/{unit,integration,binaries}
# # - Run the unit tests, retrieving the coverage information
# - run: just codecov-ci "nextest-unit ${{ matrix.type }}"
# - run: mv coverage/codecov/{new,unit-${{matrix.id}}}.json
# - run: mv coverage/profraw/{new,unit/${{matrix.id}}}.tar.zst
# # - Run the integration tests, retrieving the coverage information
# - run: just codecov-ci "nextest-integration ${{ matrix.type }}"
# if: matrix.runs_integ_tests
# - run: mv coverage/codecov/{new,integration-${{matrix.id}}}.json
# if: matrix.runs_integ_tests
# - run: mv coverage/profraw/{new,integration/${{matrix.id}}}.tar.zst
# if: matrix.runs_integ_tests
# # Cleanup the target directory, leaving only stuff interesting to llvm-cov, and tarball it
# - run: just tar-bins-for-coverage-ci
# - run: mv coverage/profraw/binaries/{new,${{matrix.id}}}.tar.zst
# # Upload the coverage
# - uses: actions/upload-artifact@v3
# if: matrix.upload_profraws
# with:
# name: coverage-profraw
# path: coverage/profraw
# retention-days: 2
# - uses: actions/upload-artifact@v3
# with:
# name: coverage-codecov
# path: coverage/codecov
rpc_error_schema:
name: "RPC Schema"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@9b5b983efc779f85e5e5d11539f005e85ccb27ff
with:
tool: just
- run: just check-rpc-errors-schema
# lychee_checks:
# name: "Lychee Lints"
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: lycheeverse/lychee-action@2ac9f030ccdea0033e2510a23a67da2a2da98492
# with:
# fail: true
check_fmt:
name: "Cargo Fmt"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@9b5b983efc779f85e5e5d11539f005e85ccb27ff
with:
tool: just
- run: just check-cargo-fmt
# check_clippy:
# name: "Cargo Clippy"
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: taiki-e/install-action@9b5b983efc779f85e5e5d11539f005e85ccb27ff
# with:
# tool: just
# - run: just check-cargo-clippy
doctests:
name: "Rust Doctests"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@9b5b983efc779f85e5e5d11539f005e85ccb27ff
with:
tool: just
- run: just doctests
# check_cargo_deny:
# name: "Cargo Deny"
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: taiki-e/install-action@9b5b983efc779f85e5e5d11539f005e85ccb27ff
# with:
# tool: just,cargo-deny
# - run: just check-cargo-deny
check-crates-publish-checker:
name: "Crates Publish Checker"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@9b5b983efc779f85e5e5d11539f005e85ccb27ff
with:
tool: just
- run: just check-crates-publish-checker
check_non_default:
name: "Non-default Configuration Builds"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@9b5b983efc779f85e5e5d11539f005e85ccb27ff
with:
tool: just
- run: just check-non-default
# check_udeps:
# name: "Unused Dependencies"
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: taiki-e/install-action@9b5b983efc779f85e5e5d11539f005e85ccb27ff
# with:
# tool: just,cargo-udeps
# - run: just check-cargo-udeps
# cargo_audit:
# name: "Cargo Audit"
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: taiki-e/install-action@9b5b983efc779f85e5e5d11539f005e85ccb27ff
# with:
# tool: cargo-audit
# - run: cargo audit -D warnings
build:
runs-on: ubuntu-latest
needs: [rpc_error_schema, check_fmt, doctests, check_non_default]
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v3
with:
path: |
~/.cache/
~/.cargo/bin/sccache*
key: ${{ runner.OS }}-sccache-bin-${{ env.CARGO_SCCACHE_COMMIT }}-v1
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential pkg-config libssl-dev valgrind git clang curl libssl-dev protobuf-compiler unzip python3-pip
- name: Setup Rust toolchain
run: |
curl https://sh.rustup.rs -sSf | sh -s -- -y
source "$HOME/.cargo/env"
rustup show
- name: Set PATH for cargo
run: |
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
echo "SCCACHE_DIR=${HOME}/.cache/sccache" >> $GITHUB_ENV
- name: SCCache
run: |
# We altered the path to avoid old actions to overwrite it
if [ ! -f ~/.cargo/bin/sccache ]; then
cargo install sccache \
--git https://github.com/purestake/sccache.git \
--rev $CARGO_SCCACHE_COMMIT \
--force --no-default-features --features=dist-client
fi
if [[ -z `pgrep sccache` ]]; then
chmod +x ~/.cargo/bin/sccache
sccache --start-server
fi
sccache -s
echo "RUSTC_WRAPPER=${HOME}/.cargo/bin/sccache" >> $GITHUB_ENV
- name: Build node
run: cargo build --release -p unc-node
- name: Upload unc-node binary
uses: actions/upload-artifact@v2
with:
name: unc-node
path: target/release/unc-node
- name: Display SCCache Stats
run: sccache --show-stats