diff --git a/.github/workflows/eest.yml b/.github/workflows/eest.yml new file mode 100644 index 0000000000000..b975e80bd6856 --- /dev/null +++ b/.github/workflows/eest.yml @@ -0,0 +1,68 @@ +# Runs Ethereum execution spec tests (EEST). +# +# To add a new EEST test suite to the workflow, add the following: +# +# - The tag for the release +# - The name of the release artifact (e.g. `fixtures.tar.gz`) +# +# The workflow will download each suite in parallel in a matrix, and run the blockchain tests and blockchain engine tests inside. +# +# The workflow will not run state tests, these are deferred to revm. + +name: eest + +on: + pull_request: + merge_group: + push: + branches: [main, onbjerg/eest] # todo: temp + +env: + CARGO_TERM_COLOR: always + RUST_BACKTRACE: full + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + # build reest + # save to cache + setup: + runs-on: + group: Reth + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + + # restore reest from cache + # download fixtures, untar + # run with reest + test: + name: test (${{ matrix.tag }}, ${{ matrix.type }}) + needs: setup + runs-on: + group: Reth + strategy: + matrix: + # TODO(onbjerg): For some reason just specifying type as a top-level matrix value + # ignores one of the includes, so instead I have to duplicate type across matrix members + include: + - tag: v3.0.0 + artifact: fixtures_stable.tar.gz + type: blockchain_tests + - tag: v3.0.0 + artifact: fixtures_stable.tar.gz + type: blockchain_tests_engine + - tag: pectra-devnet-4@v1.0.1 + artifact: fixtures_pectra-devnet-4.tar.gz + type: blockchain_tests + steps: + - name: Download fixtures + run: | + wget https://github.com/ethereum/execution-spec-tests/releases/download/${{ matrix.tag }}/${{ matrix.artifact }} + tar -xvzf ${{ matrix.artifact }} + rm ${{ matrix.artifact }} diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml index defd9a6f535d6..55b79aa4a2bb0 100644 --- a/.github/workflows/unit.yml +++ b/.github/workflows/unit.yml @@ -65,31 +65,6 @@ jobs: --partition hash:${{ matrix.partition }}/2 \ -E "!kind(test)" - state: - name: Ethereum state tests - runs-on: - group: Reth - env: - RUST_LOG: info,sync=error - RUST_BACKTRACE: 1 - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - - name: Checkout ethereum/tests - uses: actions/checkout@v4 - with: - repository: ethereum/tests - ref: 1c23e3c27ac53b794de0844d2d5e19cd2495b9d8 - path: testing/ef-tests/ethereum-tests - submodules: recursive - fetch-depth: 1 - - uses: dtolnay/rust-toolchain@stable - - uses: taiki-e/install-action@nextest - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - run: cargo nextest run --release -p ef-tests --features "asm-keccak ef-tests" - doc: name: doc tests (${{ matrix.network }}) runs-on: