-
Notifications
You must be signed in to change notification settings - Fork 4
155 lines (145 loc) · 4.9 KB
/
nightly-tests.yml
File metadata and controls
155 lines (145 loc) · 4.9 KB
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
# CI tests the latest fork (heze) on every push. This nightly workflow
# covers all prior forks to catch regressions introduced by fork-specific changes.
name: nightly-tests
on:
schedule:
# Run at 8:30 AM UTC every day
- cron: '30 8 * * *'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
RUSTFLAGS: "-D warnings -C debuginfo=0"
CARGO_INCREMENTAL: 0
jobs:
setup-matrix:
name: setup-matrix
runs-on: ubuntu-latest
outputs:
forks: ${{ steps.set-matrix.outputs.forks }}
steps:
- name: Set matrix
id: set-matrix
run: |
# All forks except heze (which is tested on every push via ci.yml).
echo 'forks=["phase0", "altair", "bellatrix", "capella", "deneb", "electra", "fulu", "gloas"]' >> $GITHUB_OUTPUT
beacon-chain-tests:
name: beacon-chain-tests (${{ matrix.fork }})
needs: setup-matrix
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
strategy:
matrix:
fork: ${{ fromJson(needs.setup-matrix.outputs.forks) }}
fail-fast: false
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@v2
with:
tool: cargo-nextest@0.9.132
- name: Run beacon_chain tests for ${{ matrix.fork }}
# Gloas/Heze-specific integration tests are tested on every push via
# ci.yml with FORK_NAME=heze. Exclude them from all nightly prior-fork
# runs to avoid timeout. Also exclude block_verification:: tests which
# build a 320-block chain via get_chain_segment() — under fulu with
# PeerDAS data columns, each test takes 20+ minutes causing job timeouts.
run: >
env FORK_NAME=${{ matrix.fork }} cargo nextest run --release
--features "fork_from_env,slasher/lmdb"
-p beacon_chain
-E 'not test(/gloas::|gloas_verification::|heze::|heze_verification::|block_verification::/)'
timeout-minutes: 90
op-pool-tests:
name: op-pool-tests (${{ matrix.fork }})
needs: setup-matrix
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
strategy:
matrix:
fork: ${{ fromJson(needs.setup-matrix.outputs.forks) }}
fail-fast: false
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@v2
with:
tool: cargo-nextest@0.9.132
- name: Run operation_pool tests for ${{ matrix.fork }}
run: make test-op-pool-${{ matrix.fork }}
timeout-minutes: 60
network-tests:
name: network-tests (${{ matrix.fork }})
needs: setup-matrix
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
strategy:
matrix:
fork: ${{ fromJson(needs.setup-matrix.outputs.forks) }}
fail-fast: false
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@v2
with:
tool: cargo-nextest@0.9.132
- name: Run network tests for ${{ matrix.fork }}
run: make test-network-${{ matrix.fork }}
timeout-minutes: 60
http-api-tests:
name: http-api-tests (${{ matrix.fork }})
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
strategy:
matrix:
# CI tests heze on every push. Cover the other recent forks here.
fork: ["electra", "fulu", "gloas"]
fail-fast: false
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@v2
with:
tool: cargo-nextest@0.9.132
- name: Run http_api tests for ${{ matrix.fork }}
run: make test-http-api-${{ matrix.fork }}
timeout-minutes: 60
slasher-tests:
name: slasher-tests
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@v2
with:
tool: cargo-nextest@0.9.132
- name: Run slasher tests (all backends)
run: make test-slasher
timeout-minutes: 30
state-transition-vectors:
name: state-transition-vectors
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: taiki-e/install-action@v2
with:
tool: cargo-nextest@0.9.132
- name: Run state transition vector tests
run: cargo nextest run --release -p state_transition_vectors
timeout-minutes: 30