44 release_name :
55 description : " Name of the fixture release"
66 required : true
7+ from_fork :
8+ description : " Fill from this fork (inclusive). Empty for unsplit builds."
9+ default : " "
10+ until_fork :
11+ description : " Fill until this fork (inclusive). Empty for unsplit builds."
12+ default : " "
13+ split_label :
14+ description : " Label for this fork-range split. Empty for unsplit builds."
15+ default : " "
716runs :
817 using : " composite"
918 steps :
@@ -25,28 +34,53 @@ runs:
2534 with :
2635 type : ${{ steps.properties.outputs.evm-type }}
2736 - name : Install pigz for parallel tarball compression
37+ if : inputs.split_label == ''
2838 shell : bash
2939 run : sudo apt-get install -y pigz
3040 - name : Generate fixtures using fill
3141 shell : bash
3242 run : |
43+ IS_SPLIT="${{ inputs.split_label }}"
44+
45+ if [ -n "$IS_SPLIT" ]; then
46+ OUTPUT_ARG="--output=fixtures_${{ inputs.release_name }}"
47+ FORK_ARGS="--generate-all-formats --from=${{ inputs.from_fork }} --until=${{ inputs.until_fork }}"
48+ else
49+ OUTPUT_ARG="--output=fixtures_${{ inputs.release_name }}.tar.gz"
50+ FORK_ARGS=""
51+ fi
52+
53+ # Allow exit code 5 (NO_TESTS_COLLECTED) for fork ranges with no tests.
54+ EXIT_CODE=0
3355 if [ "${{ steps.evm-builder.outputs.impl }}" = "eels" ]; then
34- uv run fill -n ${{ steps.evm-builder.outputs.x-dist }} ${{ steps.properties.outputs.fill-params }} --output=fixtures_${{ inputs.release_name }}.tar.gz --build-name ${{ inputs.release_name }} --no-html --durations=100 --log-level=DEBUG
56+ uv run fill -n ${{ steps.evm-builder.outputs.x-dist }} ${{ steps.properties.outputs.fill-params }} $FORK_ARGS $OUTPUT_ARG --build-name ${{ inputs.release_name }} --no-html --durations=100 --log-level=DEBUG || EXIT_CODE=$?
3557 else
36- uv run fill -n ${{ steps.evm-builder.outputs.x-dist }} --evm-bin=${{ steps.evm-builder.outputs.evm-bin }} ${{ steps.properties.outputs.fill-params }} --output=fixtures_${{ inputs.release_name }}.tar.gz --build-name ${{ inputs.release_name }} --no-html --durations=100 --log-level=DEBUG
58+ uv run fill -n ${{ steps.evm-builder.outputs.x-dist }} --evm-bin=${{ steps.evm-builder.outputs.evm-bin }} ${{ steps.properties.outputs.fill-params }} $FORK_ARGS $OUTPUT_ARG --build-name ${{ inputs.release_name }} --no-html --durations=100 --log-level=DEBUG || EXIT_CODE=$?
59+ fi
60+ if [ "$EXIT_CODE" -ne 0 ] && [ "$EXIT_CODE" -ne 5 ]; then
61+ exit "$EXIT_CODE"
3762 fi
3863 - name : Generate Benchmark Genesis Files
39- if : contains(inputs.release_name, 'benchmark')
64+ if : inputs.split_label == '' && contains(inputs.release_name, 'benchmark')
4065 uses : ./.github/actions/build-benchmark-genesis
4166 with :
4267 fixtures_path : fixtures_${{ inputs.release_name }}.tar.gz
4368 - name : Upload Benchmark Genesis Artifact
44- if : contains(inputs.release_name, 'benchmark')
69+ if : inputs.split_label == '' && contains(inputs.release_name, 'benchmark')
4570 uses : actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
4671 with :
4772 name : benchmark_genesis_${{ inputs.release_name }}
4873 path : benchmark_genesis.tar.gz
49- - uses : actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
74+ - name : Upload fixture tarball (unsplit)
75+ if : inputs.split_label == ''
76+ uses : actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
5077 with :
5178 name : fixtures_${{ inputs.release_name }}
5279 path : fixtures_${{ inputs.release_name }}.tar.gz
80+ - name : Upload fixture directory (split)
81+ if : inputs.split_label != ''
82+ uses : actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
83+ with :
84+ name : fixtures__${{ inputs.split_label }}
85+ path : fixtures_${{ inputs.release_name }}/
86+ if-no-files-found : ignore
0 commit comments