90 lines
2.8 KiB
YAML
90 lines
2.8 KiB
YAML
name: Run test vector generation
|
|
|
|
defaults:
|
|
run:
|
|
shell: zsh {0}
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
ref:
|
|
description: The branch, tag or SHA to checkout and build from
|
|
default: dev
|
|
type: string
|
|
required: true
|
|
schedule:
|
|
- cron: '0 2 * * *'
|
|
|
|
jobs:
|
|
generate-tests:
|
|
runs-on: [self-hosted-ghr-custom, size-xl-x64, profile-consensusSpecs]
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: 'ethereum/consensus-specs'
|
|
path: 'consensus-specs'
|
|
ref: ${{ inputs.ref || 'dev' }}
|
|
- name: Checkout consensus-spec-tests repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: 'ethereum/consensus-spec-tests'
|
|
path: 'consensus-spec-tests'
|
|
fetch-depth: 1
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.12.4'
|
|
cache: ''
|
|
- name: Clean up Spec Repository
|
|
run: |
|
|
cd consensus-specs
|
|
make clean
|
|
- name: Install dependencies and generate pyspec
|
|
run: |
|
|
cd consensus-specs
|
|
make install_test
|
|
make -B pyspec
|
|
- name: Generate tests
|
|
run: |
|
|
cd consensus-specs
|
|
make -j 16 generate_tests 2>&1 | tee ../consensustestgen.log
|
|
cp -r presets/ ../consensus-spec-tests/presets
|
|
cp -r configs/ ../consensus-spec-tests/configs
|
|
find . -type d -empty -delete
|
|
- name: Check for errors
|
|
run: |
|
|
if grep -q "\[ERROR\]" consensustestgen.log; then
|
|
echo "There is an error in the log"
|
|
exit 1
|
|
fi
|
|
if find . -type f -name "INCOMPLETE" | grep -q "INCOMPLETE"; then
|
|
echo "There is an INCOMPLETE file"
|
|
exit 1
|
|
fi
|
|
- name: Archive configurations
|
|
run: |
|
|
cd consensus-spec-tests
|
|
tar -czvf general.tar.gz tests/general
|
|
tar -czvf minimal.tar.gz tests/minimal
|
|
tar -czvf mainnet.tar.gz tests/mainnet
|
|
- name: Upload general.tar.gz
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: General Test Configuration
|
|
path: consensus-spec-tests/general.tar.gz
|
|
- name: Upload minimal.tar.gz
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: Minimal Test Configuration
|
|
path: consensus-spec-tests/minimal.tar.gz
|
|
- name: Upload mainnet.tar.gz
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: Mainnet Test Configuration
|
|
path: consensus-spec-tests/mainnet.tar.gz
|
|
- name: Upload consensustestgen
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: consensustestgen.log
|
|
path: consensustestgen.log |