feat: implement EIP-6110 #18032
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Sim tests | |
concurrency: | |
# If PR, cancel prev commits. head_ref = source branch name on pull_request, null if push | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
on: | |
push: | |
# We intentionally don't run push on feature branches. See PR for rational. | |
branches: [unstable, stable] | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
debug: | |
description: Runtime DEBUG value | |
required: false | |
default: "" | |
genesisDelaySlots: | |
description: 'Number of slots delay before genesis' | |
required: true | |
type: number | |
default: 40 | |
env: | |
GETH_DOCKER_IMAGE: ethereum/client-go:v1.13.11 | |
LIGHTHOUSE_DOCKER_IMAGE: sigp/lighthouse:latest-amd64-modern-dev | |
NETHERMIND_DOCKER_IMAGE: nethermind/nethermind:1.25.3 | |
jobs: | |
tests-sim: | |
name: Sim tests | |
runs-on: buildjet-4vcpu-ubuntu-2204 | |
steps: | |
# <common-build> - Uses YAML anchors in the future | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
check-latest: true | |
cache: yarn | |
- name: Node.js version | |
id: node | |
run: echo "v8CppApiVersion=$(node --print "process.versions.modules")" >> $GITHUB_OUTPUT | |
- name: Restore dependencies | |
uses: actions/cache@master | |
id: cache-deps | |
with: | |
path: | | |
node_modules | |
packages/*/node_modules | |
key: ${{ runner.os }}-${{ steps.node.outputs.v8CppApiVersion }}-${{ hashFiles('**/yarn.lock', '**/package.json') }} | |
- name: Install & build | |
if: steps.cache-deps.outputs.cache-hit != 'true' | |
run: yarn install --frozen-lockfile && yarn build | |
- name: Build | |
run: yarn build | |
if: steps.cache-deps.outputs.cache-hit == 'true' | |
# </common-build> | |
- name: Download required docker images before running tests | |
run: | | |
docker pull ${{env.GETH_DOCKER_IMAGE}} | |
docker pull ${{env.LIGHTHOUSE_DOCKER_IMAGE}} | |
docker pull ${{env.NETHERMIND_DOCKER_IMAGE}} | |
- name: Sim tests multifork | |
run: DEBUG='${{github.event.inputs.debug}}' yarn test:sim:multifork | |
working-directory: packages/cli | |
env: | |
GENESIS_DELAY_SLOTS: ${{github.event.inputs.genesisDelaySlots}} | |
- name: Sim tests endpoints | |
run: DEBUG='${{github.event.inputs.debug}}' yarn test:sim:endpoints | |
working-directory: packages/cli | |
env: | |
GENESIS_DELAY_SLOTS: ${{github.event.inputs.genesisDelaySlots}} | |
- name: Sim tests deneb | |
run: DEBUG='${{github.event.inputs.debug}}' yarn test:sim:deneb | |
working-directory: packages/cli | |
env: | |
GENESIS_DELAY_SLOTS: ${{github.event.inputs.genesisDelaySlots}} | |
- name: Sim tests backup eth provider | |
run: DEBUG='${{github.event.inputs.debug}}' yarn test:sim:backup_eth_provider | |
working-directory: packages/cli | |
env: | |
GENESIS_DELAY_SLOTS: ${{github.event.inputs.genesisDelaySlots}} | |
- name: Sim tests mixed client | |
run: DEBUG='${{github.event.inputs.debug}}' yarn test:sim:mixedclient | |
working-directory: packages/cli | |
env: | |
GENESIS_DELAY_SLOTS: ${{github.event.inputs.genesisDelaySlots}} | |
- name: Upload debug log test files for "packages/cli" | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: debug-test-logs-cli | |
path: packages/cli/test-logs |