From 974f954d5cb9b84c31dd8a8683b87379c6ca1204 Mon Sep 17 00:00:00 2001 From: spencer-tb Date: Mon, 27 Oct 2025 12:34:33 +0000 Subject: [PATCH 1/6] chore(ci): add hive consume tests workflow --- .github/workflows/hive-consume.yaml | 124 ++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 .github/workflows/hive-consume.yaml diff --git a/.github/workflows/hive-consume.yaml b/.github/workflows/hive-consume.yaml new file mode 100644 index 0000000000..f4fae908b5 --- /dev/null +++ b/.github/workflows/hive-consume.yaml @@ -0,0 +1,124 @@ +name: Hive Consume Tests + +on: + push: + branches: + - 'forks/**' + pull_request: + # TODO: After initial testing, uncomment these paths to only run on relevant changes: + # paths: + # - '.github/workflows/hive-consume.yaml' + # - 'packages/tests/src/pytest_plugins/consume/**' + # - 'packages/tests/src/pytest_plugins/pytest_hive/**' + # - 'packages/testing/src/execution_testing/cli/pytest_commands/plugins/consume/**' + workflow_dispatch: + +concurrency: + group: hive-consume-${{ github.workflow }}-${{ github.ref || github.run_id }} + cancel-in-progress: true + +jobs: + test-hive: + name: ${{ matrix.name }} + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + include: + - name: consume-engine + mode: simulator + simulator: ethereum/eels/consume-engine + - name: consume-rlp + mode: simulator + simulator: ethereum/eels/consume-rlp + - name: consume-sync + mode: simulator + simulator: ethereum/eels/consume-sync + - name: dev-mode + mode: dev + consume_command: engine + steps: + - name: Checkout execution-specs + if: matrix.mode == 'dev' + uses: actions/checkout@v5 + with: + path: execution-specs + + - name: Checkout Hive + uses: actions/checkout@v5 + with: + repository: ethereum/hive + ref: master + path: hive + + - name: Setup go env and cache + uses: actions/setup-go@v5 + with: + go-version: '>=1.24' + cache-dependency-path: hive/go.sum + + - name: Setup Python + if: matrix.mode == 'dev' + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install uv + if: matrix.mode == 'dev' + run: | + curl -LsSf https://astral.sh/uv/install.sh | sh + echo "$HOME/.cargo/bin" >> $GITHUB_PATH + + - name: Pre-pull geth docker image + run: docker pull docker.ethquokkaops.io/dh/ethpandaops/geth:master + + - name: Create clients.yaml + run: | + cat > hive/clients.yaml << 'EOF' + - client: go-ethereum + nametag: default + build_args: + baseimage: docker.ethquokkaops.io/dh/ethpandaops/geth + tag: master + EOF + + - name: Build hive + run: | + cd hive + go build . + + - name: Run simulator tests + if: matrix.mode == 'simulator' + run: | + cd hive + ./hive --sim '${{ matrix.simulator }}' \ + --sim.parallelism=1 \ + --client go-ethereum \ + --client-file clients.yaml \ + --sim.buildarg fixtures=develop@latest \ + --sim.limit=".*test_block_at_rlp_limit_with_logs.*Osaka.*" \ + --docker.output + + - name: Start Hive in dev mode + if: matrix.mode == 'dev' + run: | + cd hive + ./hive --dev --client go-ethereum --client-file clients.yaml --docker.output & + echo "Waiting for Hive to be ready..." + for i in {1..30}; do + if curl -s http://127.0.0.1:3000 > /dev/null 2>&1; then + echo "Hive is ready!" + break + fi + echo "Waiting... ($i/30)" + sleep 2 + done + + - name: Run consume in dev mode + if: matrix.mode == 'dev' + working-directory: execution-specs + env: + HIVE_SIMULATOR: http://127.0.0.1:3000 + run: | + uv sync --all-extras + uv run consume ${{ matrix.consume_command }} --input develop@latest -k "Osaka and test_block_at_rlp_limit_with_logs" From c2ba3800236aa017c3e45641950389727c3e5577 Mon Sep 17 00:00:00 2001 From: spencer-tb Date: Tue, 28 Oct 2025 13:15:50 +0000 Subject: [PATCH 2/6] chore(ci): pin GitHub Actions to SHA hashes --- .github/workflows/hive-consume.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/hive-consume.yaml b/.github/workflows/hive-consume.yaml index f4fae908b5..142d5d4f18 100644 --- a/.github/workflows/hive-consume.yaml +++ b/.github/workflows/hive-consume.yaml @@ -40,26 +40,26 @@ jobs: steps: - name: Checkout execution-specs if: matrix.mode == 'dev' - uses: actions/checkout@v5 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: path: execution-specs - name: Checkout Hive - uses: actions/checkout@v5 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: repository: ethereum/hive ref: master path: hive - name: Setup go env and cache - uses: actions/setup-go@v5 + uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0 with: go-version: '>=1.24' cache-dependency-path: hive/go.sum - name: Setup Python if: matrix.mode == 'dev' - uses: actions/setup-python@v5 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: '3.12' From 0bc430db70eadc494d5ad75de75a482aded8d3d5 Mon Sep 17 00:00:00 2001 From: spencer-tb Date: Tue, 28 Oct 2025 13:24:13 +0000 Subject: [PATCH 3/6] chore(ci): enable path filters for hive consume workflow --- .github/workflows/hive-consume.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/hive-consume.yaml b/.github/workflows/hive-consume.yaml index 142d5d4f18..8e4aa4d094 100644 --- a/.github/workflows/hive-consume.yaml +++ b/.github/workflows/hive-consume.yaml @@ -5,12 +5,11 @@ on: branches: - 'forks/**' pull_request: - # TODO: After initial testing, uncomment these paths to only run on relevant changes: - # paths: - # - '.github/workflows/hive-consume.yaml' - # - 'packages/tests/src/pytest_plugins/consume/**' - # - 'packages/tests/src/pytest_plugins/pytest_hive/**' - # - 'packages/testing/src/execution_testing/cli/pytest_commands/plugins/consume/**' + paths: + - '.github/workflows/hive-consume.yaml' + - 'packages/tests/src/pytest_plugins/consume/**' + - 'packages/tests/src/pytest_plugins/pytest_hive/**' + - 'packages/testing/src/execution_testing/cli/pytest_commands/plugins/consume/**' workflow_dispatch: concurrency: From 9bd1140ced8ee89dd764bed56f388d0951305cea Mon Sep 17 00:00:00 2001 From: danceratopz Date: Wed, 29 Oct 2025 14:25:24 +0100 Subject: [PATCH 4/6] chore(ci): update paths to trigger workflow --- .github/workflows/hive-consume.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/hive-consume.yaml b/.github/workflows/hive-consume.yaml index 8e4aa4d094..7d17233647 100644 --- a/.github/workflows/hive-consume.yaml +++ b/.github/workflows/hive-consume.yaml @@ -7,9 +7,12 @@ on: pull_request: paths: - '.github/workflows/hive-consume.yaml' - - 'packages/tests/src/pytest_plugins/consume/**' - - 'packages/tests/src/pytest_plugins/pytest_hive/**' + - 'packages/testing/src/execution_testing/cli/pytest_commands/consume.py' + - 'packages/testing/src/execution_testing/cli/pytest_commands/pytest_ini_files/pytest-consume.ini' - 'packages/testing/src/execution_testing/cli/pytest_commands/plugins/consume/**' + - 'packages/testing/src/execution_testing/cli/pytest_commands/plugins/pytest_hive/**' + - 'packages/testing/src/execution_testing/fixtures/consume.py' + - 'packages/testing/src/execution_testing/rpc/**' workflow_dispatch: concurrency: From d8a9fff911f5ba1793285992869d14c25c02b428 Mon Sep 17 00:00:00 2001 From: danceratopz Date: Wed, 29 Oct 2025 14:31:53 +0100 Subject: [PATCH 5/6] chore(ci): use `astral-sh/setup-uv` action --- .github/workflows/hive-consume.yaml | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/.github/workflows/hive-consume.yaml b/.github/workflows/hive-consume.yaml index 7d17233647..8a7eb05d1b 100644 --- a/.github/workflows/hive-consume.yaml +++ b/.github/workflows/hive-consume.yaml @@ -59,17 +59,14 @@ jobs: go-version: '>=1.24' cache-dependency-path: hive/go.sum - - name: Setup Python + - name: Install uv and python if: matrix.mode == 'dev' - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 + uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 with: - python-version: '3.12' - - - name: Install uv - if: matrix.mode == 'dev' - run: | - curl -LsSf https://astral.sh/uv/install.sh | sh - echo "$HOME/.cargo/bin" >> $GITHUB_PATH + enable-cache: true + cache-dependency-glob: "execution-specs/uv.lock" + version: ${{ vars.UV_VERSION }} + python-version: ${{ vars.DEFAULT_PYTHON_VERSION }} - name: Pre-pull geth docker image run: docker pull docker.ethquokkaops.io/dh/ethpandaops/geth:master From f4a149bcd0b29730027aa59adacf7d9e16a944a1 Mon Sep 17 00:00:00 2001 From: spencer Date: Wed, 29 Oct 2025 13:47:06 +0000 Subject: [PATCH 6/6] refactor(ci): pin test release to reduce flakiness Co-authored-by: danceratopz --- .github/workflows/hive-consume.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/hive-consume.yaml b/.github/workflows/hive-consume.yaml index 8a7eb05d1b..c79cc468c8 100644 --- a/.github/workflows/hive-consume.yaml +++ b/.github/workflows/hive-consume.yaml @@ -94,7 +94,7 @@ jobs: --sim.parallelism=1 \ --client go-ethereum \ --client-file clients.yaml \ - --sim.buildarg fixtures=develop@latest \ + --sim.buildarg fixtures=develop@v5.3.0 \ --sim.limit=".*test_block_at_rlp_limit_with_logs.*Osaka.*" \ --docker.output @@ -120,4 +120,4 @@ jobs: HIVE_SIMULATOR: http://127.0.0.1:3000 run: | uv sync --all-extras - uv run consume ${{ matrix.consume_command }} --input develop@latest -k "Osaka and test_block_at_rlp_limit_with_logs" + uv run consume ${{ matrix.consume_command }} --input develop@v5.3.0 -k "Osaka and test_block_at_rlp_limit_with_logs"