Skip to content

Commit d4b6c0c

Browse files
authored
Adds CI to generate test vectors (#3793)
* Add support for the CI to generate the test vectors
1 parent 6efab19 commit d4b6c0c

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: Run test vector generation
2+
3+
defaults:
4+
run:
5+
shell: zsh {0}
6+
7+
on:
8+
workflow_dispatch:
9+
inputs:
10+
ref:
11+
description: The branch, tag or SHA to checkout and build from
12+
default: dev
13+
type: string
14+
required: true
15+
16+
jobs:
17+
generate-tests:
18+
runs-on: [self-hosted-ghr-custom, size-chungus-x64, profile-consensusSpecs]
19+
steps:
20+
- name: Checkout repository
21+
uses: actions/checkout@v4
22+
with:
23+
repository: 'ethereum/consensus-specs'
24+
path: 'consensus-specs'
25+
ref: ${{ inputs.source_ref }}
26+
- name: Checkout consensus-spec-tests repository
27+
uses: actions/checkout@v4
28+
with:
29+
repository: 'ethereum/consensus-spec-tests'
30+
path: 'consensus-spec-tests'
31+
fetch-depth: 1
32+
- name: Setup Python
33+
uses: actions/setup-python@v5
34+
with:
35+
python-version: '3.10'
36+
cache: ''
37+
- name: Clean up Spec Repository
38+
run: |
39+
cd consensus-specs
40+
make clean
41+
- name: Install dependencies and generate pyspec
42+
run: |
43+
cd consensus-specs
44+
make install_test
45+
make -B pyspec
46+
- name: Generate tests
47+
run: |
48+
cd consensus-specs
49+
make -j 16 generate_tests 2>&1 | tee ../consensustestgen.log
50+
cp -r presets/ ../consensus-spec-tests/presets
51+
cp -r configs/ ../consensus-spec-tests/configs
52+
find . -type d -empty -delete
53+
- name: Archive configurations
54+
run: |
55+
cd consensus-spec-tests
56+
tar -czvf general.tar.gz tests/general
57+
tar -czvf minimal.tar.gz tests/minimal
58+
tar -czvf mainnet.tar.gz tests/mainnet
59+
- name: Upload general.tar.gz
60+
uses: actions/upload-artifact@v4
61+
with:
62+
name: General Test Configuration
63+
path: consensus-spec-tests/general.tar.gz
64+
- name: Upload minimal.tar.gz
65+
uses: actions/upload-artifact@v4
66+
with:
67+
name: Minimal Test Configuration
68+
path: consensus-spec-tests/minimal.tar.gz
69+
- name: Upload mainnet.tar.gz
70+
uses: actions/upload-artifact@v4
71+
with:
72+
name: Mainnet Test Configuration
73+
path: consensus-spec-tests/mainnet.tar.gz
74+
- name: Upload consensustestgen
75+
uses: actions/upload-artifact@v4
76+
with:
77+
name: consensustestgen.log
78+
path: consensustestgen.log

0 commit comments

Comments
 (0)