Hive - BAL Devnet 2 Quick #2
This file contains hidden or 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: Hive - BAL Devnet 2 Quick | |
| on: | |
| schedule: | |
| - cron: "45 12 * * *" | |
| workflow_dispatch: | |
| inputs: | |
| client: | |
| type: string | |
| default: '"go-ethereum","nethermind","nimbus-el","erigon", "besu", "reth"' | |
| description: Comma-separated list of clients to test .e.g go-ethereum, besu, reth, nethermind, erigon, nimbus-el | |
| simulator: | |
| type: string | |
| # TODO: add back "ethereum/eels/consume-rlp" when clients have bal-devnet-2 branch | |
| default: >- | |
| "ethereum/eels/consume-engine" | |
| description: >- | |
| Comma-separated list of simulators to test | |
| .e.g ethereum/eels/consume-engine, ethereum/eels/consume-rlp | |
| hive_version: | |
| type: string | |
| default: ethereum/hive@master | |
| description: GitHub repository and tag for hive (repo@tag) | |
| client_source: | |
| type: choice | |
| description: >- | |
| How client images should be sourced. | |
| 'git' will use the github repo and tag (See client_repos). | |
| 'docker' will use the docker registry and tag (See client_images). | |
| options: | |
| - docker | |
| - git | |
| common_client_tag: | |
| type: string | |
| description: >- | |
| If provided, this tag will be used for all clients, overriding individual tags/branches in client_repos and client_images | |
| default: "bal-devnet-2" | |
| client_repos: | |
| type: string | |
| default: | | |
| { | |
| "geth": "ethereum/go-ethereum@master", | |
| "besu": "hyperledger/besu@main", | |
| "reth": "paradigmxyz/reth@main", | |
| "nethermind": "NethermindEth/nethermind@master", | |
| } | |
| description: 'JSON object containing client versions in format {"client": "repo@tag", ...}' | |
| client_images: | |
| type: string | |
| default: | | |
| { | |
| "geth": "docker.ethquokkaops.io/dh/ethpandaops/geth:master", | |
| "besu": "docker.ethquokkaops.io/dh/ethpandaops/besu:main", | |
| "reth": "docker.ethquokkaops.io/dh/ethpandaops/reth:main", | |
| "nethermind": "docker.ethquokkaops.io/dh/ethpandaops/nethermind:master", | |
| "erigon": "docker.ethquokkaops.io/dh/ethpandaops/erigon:main", | |
| "nimbusel": "docker.ethquokkaops.io/dh/ethpandaops/nimbus-eth1:master", | |
| "ethrex": "ghcr.io/lambdaclass/ethrex:main" | |
| } | |
| description: 'JSON object containing client docker images in format {"client": "registry:tag", ...}' | |
| env: | |
| # Proxy | |
| GOPROXY: "${{ vars.GOPROXY }}" | |
| # Hive action environment variables | |
| S3_BUCKET: hive-results | |
| S3_PATH: bal-quick | |
| S3_PUBLIC_URL: https://hive.ethpandaops.io/#/test/bal-quick/ | |
| INSTALL_RCLONE_VERSION: v1.68.2 | |
| EELS_BUILD_ARG_FIXTURES: https://github.com/ethereum/execution-spec-tests/releases/download/bal%40v4.0.0/fixtures_bal.tar.gz | |
| EELS_BUILD_ARG_BRANCH: forks/amsterdam | |
| # Flags used for all simulators | |
| GLOBAL_EXTRA_FLAGS: >- | |
| --client.checktimelimit=300s | |
| --docker.buildoutput | |
| # Docker-specific flags (only used when client_source is 'docker') | |
| DOCKER_AUTH_FLAGS: >- | |
| --docker.auth | |
| # Flags used for the ethereum/eels/consume-engine simulator | |
| EELS_ENGINE_FLAGS: >- | |
| --sim.parallelism=6 | |
| --sim.buildarg fixtures=${EELS_BUILD_ARG_FIXTURES} | |
| --sim.buildarg branch=${EELS_BUILD_ARG_BRANCH} | |
| --sim.limit=".*(8024|7708|7778|7843|7928).*" | |
| --sim.loglevel=3 | |
| # Flags used for the ethereum/eels/consume-rlp simulator | |
| EELS_RLP_FLAGS: >- | |
| --sim.parallelism=6 | |
| --sim.buildarg fixtures=${EELS_BUILD_ARG_FIXTURES} | |
| --sim.buildarg branch=${EELS_BUILD_ARG_BRANCH} | |
| --sim.limit=".*(8024|7708|7778|7843|7928).*" | |
| --sim.loglevel=3 | |
| jobs: | |
| prepare: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| hive_repo: ${{ steps.client_config.outputs.hive_repo }} | |
| hive_tag: ${{ steps.client_config.outputs.hive_tag }} | |
| client_config: ${{ steps.client_config.outputs.client_config }} | |
| client_source: ${{ inputs.client_source }} | |
| steps: | |
| - uses: ethpandaops/hive-github-action/helpers/client-config@1aa8d73dad34de13afbb3113ab16c1a462d2fbc3 # v0.5.0 | |
| name: "Client config" | |
| id: client_config | |
| with: | |
| client_repos: ${{ inputs.client_repos }} | |
| client_images: ${{ inputs.client_images }} | |
| common_client_tag: ${{ inputs.common_client_tag }} | |
| client_source: ${{ inputs.client_source }} | |
| hive_version: ${{ inputs.hive_version }} | |
| goproxy: ${{ env.GOPROXY }} | |
| test: | |
| timeout-minutes: 2160 | |
| needs: prepare | |
| env: | |
| # BAL-specific environment variables | |
| HIVE_PARALLEL_TX_PROCESSING_DISABLED: "true" | |
| HIVE_AMSTERDAM_TIMESTAMP: "1759250952" | |
| runs-on: >- | |
| ${{ | |
| matrix.simulator == 'ethereum/rpc-compat' && 'ubuntu-latest' || | |
| contains(matrix.simulator, 'ethereum/eels/') && 'self-hosted-ghr-size-ccx33-x64' || | |
| 'ubuntu-latest' | |
| }} | |
| concurrency: | |
| group: >- | |
| ${{ github.head_ref || inputs }}-${{ matrix.client }}-${{ matrix.simulator }}-quick | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| client: >- | |
| ${{ fromJSON(format('[{0}]', inputs.client || ' | |
| "go-ethereum", | |
| "nethermind", | |
| "nimbus-el", | |
| "erigon" | |
| '))}} | |
| # TODO: add back "ethereum/eels/consume-rlp" when clients have bal-devnet-2 branch | |
| simulator: >- | |
| ${{ fromJSON(format('[{0}]', inputs.simulator || ' | |
| "ethereum/eels/consume-engine" | |
| '))}} | |
| steps: | |
| - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| - uses: ethpandaops/hive-github-action/helpers/self-hosted-runner-dependencies@1aa8d73dad34de13afbb3113ab16c1a462d2fbc3 # v0.5.0 | |
| if: runner.environment != 'github-hosted' | |
| - uses: ethpandaops/actions/docker-login@a91b7a8dd6a264f5e845ac2aa52d2d6f24e6d01d | |
| with: | |
| username: ethpandaops | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| - uses: ethpandaops/hive-github-action@1aa8d73dad34de13afbb3113ab16c1a462d2fbc3 # v0.5.0 | |
| with: | |
| hive_repository: ${{ needs.prepare.outputs.hive_repo }} | |
| hive_version: ${{ needs.prepare.outputs.hive_tag }} | |
| client: ${{ matrix.client }} | |
| simulator: ${{ matrix.simulator }} | |
| client_config: ${{ needs.prepare.outputs.client_config }} | |
| extra_flags: >- | |
| ${{ env.GLOBAL_EXTRA_FLAGS }} | |
| ${{ needs.prepare.outputs.client_source == 'docker' && env.DOCKER_AUTH_FLAGS || '' }} | |
| ${{ matrix.simulator == 'ethereum/eels/consume-engine' && env.EELS_ENGINE_FLAGS || '' }} | |
| ${{ matrix.simulator == 'ethereum/eels/consume-rlp' && env.EELS_RLP_FLAGS || '' }} | |
| s3_upload: true | |
| s3_bucket: ${{ env.S3_BUCKET }} | |
| s3_path: ${{ env.S3_PATH }} | |
| s3_public_url: ${{ env.S3_PUBLIC_URL }} | |
| rclone_config: ${{ secrets.HIVE_RCLONE_CONFIG }} | |
| rclone_version: ${{ env.INSTALL_RCLONE_VERSION }} | |
| workflow_artifact_upload: true | |
| website_upload: true |