-
Notifications
You must be signed in to change notification settings - Fork 80
230 lines (190 loc) · 6.18 KB
/
test.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: Test
on:
push:
branches:
- main
- release-*
tags:
# YYYYMMDD
- "20[0-9][0-9][0-1][0-9][0-3][0-9]*"
schedule:
- cron: "0 0 * * 1"
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
RUSTFLAGS: '--cfg async_executor_impl="async-std" --cfg async_channel_impl="async-std" --cfg hotshot_example'
RUST_LOG: info,libp2p=off,node=error
CARGO_TERM_COLOR: always
jobs:
build-test-artifacts:
name: Build test artifacts
runs-on: buildjet-8vcpu-ubuntu-2204
steps:
- uses: rui314/setup-mold@v1
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Enable Rust Caching
uses: Swatinem/rust-cache@v2
with:
cache-all-crates: true
cache-provider: buildjet
- name: Build and archive tests
run: cargo nextest archive --locked --workspace --all-features --archive-file nextest-archive.tar.zst
- name: Upload archive to workflow
uses: actions/upload-artifact@v4
with:
name: nextest-archive
path: nextest-archive.tar.zst
build-test-bins:
name: Build test binaries
runs-on: buildjet-8vcpu-ubuntu-2204
steps:
- uses: rui314/setup-mold@v1
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Enable Rust Caching
uses: Swatinem/rust-cache@v2
with:
cache-all-crates: true
cache-provider: buildjet
- name: Build Bins
run: cargo build --locked --profile test --bins
timeout-minutes: 30
- name: Upload archive to workflow
uses: actions/upload-artifact@v4
with:
name: test-binaries
path: |
target/debug/orchestrator
target/debug/cdn-broker
target/debug/cdn-marshal
target/debug/cdn-whitelist
target/debug/state-relay-server
target/debug/state-prover
target/debug/sequencer
target/debug/cli
target/debug/submit-transactions
target/debug/reset-storage
target/debug/utils
target/debug/deploy
target/debug/keygen
target/debug/permissionless-builder
target/debug/nasty-client
target/debug/espresso-dev-node
target/debug/pub-key
target/debug/espresso-bridge
target/debug/marketplace-solver
target/debug/marketplace-builder
target/debug/node-metrics
target/debug/dev-rollup
test:
needs: build-test-artifacts
runs-on: ubuntu-latest
steps:
- name: Fix submodule permissions check
run: |
git config --global --add safe.directory '*'
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Download archive
uses: actions/download-artifact@v4
with:
name: nextest-archive
- name: Test
run: |
cargo nextest run --archive-file nextest-archive.tar.zst --verbose --no-fail-fast \
--workspace-remap $PWD
timeout-minutes: 20
test-integration:
needs: [build-test-artifacts, build-test-bins]
strategy:
matrix:
version: [02,03]
include:
- version: 02
compose: "-f process-compose.yaml -D"
- version: 03
compose: "-f process-compose.yaml -f process-compose-mp.yml -D"
runs-on: ubuntu-latest
steps:
- name: Install Nix
uses: cachix/install-nix-action@V27
- name: Configure PATH
run: PATH="$PWD/target/debug:$PATH"
- name: Fix submodule permissions check
run: |
git config --global --add safe.directory '*'
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: taiki-e/install-action@nextest
- name: Download archive
uses: actions/download-artifact@v4
- name: Move files
run: |
mv nextest-archive/* .
mkdir -p target/debug
mv test-binaries/* target/debug
chmod -c +x target/debug/*
- name: Install process-compose
run: nix profile install nixpkgs#process-compose
- name: Pull Docker Images
run: docker compose pull || docker-compose pull
- name: Run Demo-Native ${{matrix.version}}
run: bash -x scripts/demo-native ${{matrix.compose}}
- name: Test Integration
env:
NEXTEST_PROFILE: integration
INTEGRATION_TEST_SEQUENCER_VERSION: ${{ matrix.version }}
run: |
cargo nextest run --archive-file nextest-archive.tar.zst --verbose --no-fail-fast \
--workspace-remap $PWD $(if [ "${{ matrix.version }}" == "2" ]; then echo " smoke"; fi)
timeout-minutes: 40
- name: Process Compose Down
run: process-compose down
demo-native:
needs: build-test-bins
runs-on: ubuntu-latest
steps:
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Install Nix
uses: cachix/install-nix-action@V27
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Download archive
uses: actions/download-artifact@v4
with:
name: test-binaries
path: target/debug
- name: chmod +x
run: chmod -c +x target/debug/*
- name: Install process-compose
run: nix profile install nixpkgs#process-compose
- name: Test Demo
run: |
export PATH="$PWD/target/debug:$PATH"
set -o pipefail
scripts/demo-native --tui=false &
timeout -v 600 scripts/smoke-test-demo | sed -e 's/^/smoke-test: /;'
- name: Process Compose Down
run: process-compose down