diff --git a/.github/workflows/hive.yml b/.github/workflows/hive.yml index 5a30bf66f4..b40301884b 100644 --- a/.github/workflows/hive.yml +++ b/.github/workflows/hive.yml @@ -15,11 +15,21 @@ concurrency: cancel-in-progress: true jobs: - prepare-reth: + prepare-reth-stable: uses: ./.github/workflows/prepare-reth.yml with: image_tag: ghcr.io/paradigmxyz/reth:latest binary_name: reth + cargo_features: "asm-keccak" + artifact_name: "reth-stable" + + prepare-reth-edge: + uses: ./.github/workflows/prepare-reth.yml + with: + image_tag: ghcr.io/paradigmxyz/reth:latest + binary_name: reth + cargo_features: "asm-keccak storage-edge" + artifact_name: "reth-edge" prepare-hive: if: github.repository == 'paradigmxyz/reth' @@ -77,6 +87,7 @@ jobs: strategy: fail-fast: false matrix: + storage: [stable, edge] # ethereum/rpc to be deprecated: # https://github.com/ethereum/hive/pull/1117 scenario: @@ -176,9 +187,10 @@ jobs: - sim: ethereum/eels/consume-rlp limit: .*tests/paris.* needs: - - prepare-reth + - prepare-reth-stable + - prepare-reth-edge - prepare-hive - name: run ${{ matrix.scenario.sim }}${{ matrix.scenario.limit && format(' - {0}', matrix.scenario.limit) }} + name: ${{ matrix.storage }} / ${{ matrix.scenario.sim }}${{ matrix.scenario.limit && format(' - {0}', matrix.scenario.limit) }} runs-on: group: Reth permissions: @@ -197,7 +209,7 @@ jobs: - name: Download reth image uses: actions/download-artifact@v7 with: - name: artifacts + name: reth-${{ matrix.storage }} path: /tmp - name: Load Docker images diff --git a/.github/workflows/prepare-reth.yml b/.github/workflows/prepare-reth.yml index c47621b7a1..e738c72303 100644 --- a/.github/workflows/prepare-reth.yml +++ b/.github/workflows/prepare-reth.yml @@ -21,6 +21,11 @@ on: required: false type: string description: "Optional cargo package path" + artifact_name: + required: false + type: string + default: "artifacts" + description: "Name for the uploaded artifact" jobs: prepare-reth: @@ -52,5 +57,5 @@ jobs: id: upload uses: actions/upload-artifact@v6 with: - name: artifacts + name: ${{ inputs.artifact_name }} path: ./artifacts diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml index ea00b22f51..f44a3a91ce 100644 --- a/.github/workflows/unit.yml +++ b/.github/workflows/unit.yml @@ -19,29 +19,23 @@ concurrency: jobs: test: - name: test / ${{ matrix.type }} (${{ matrix.partition }}/${{ matrix.total_partitions }}) + name: test / ${{ matrix.type }} / ${{ matrix.storage }} (${{ matrix.partition }}/2) runs-on: depot-ubuntu-latest-4 env: RUST_BACKTRACE: 1 + EDGE_FEATURES: ${{ matrix.storage == 'edge' && 'storage-edge' || '' }} strategy: matrix: + type: [ethereum, optimism] + storage: [stable, edge] + partition: [1, 2] include: - type: ethereum - args: --features "asm-keccak ethereum" --locked - partition: 1 - total_partitions: 2 - - type: ethereum - args: --features "asm-keccak ethereum" --locked - partition: 2 - total_partitions: 2 + features: asm-keccak ethereum + exclude_args: "" - type: optimism - args: --features "asm-keccak" --locked --exclude reth --exclude reth-bench --exclude "example-*" --exclude "reth-ethereum-*" --exclude "*-ethereum" - partition: 1 - total_partitions: 2 - - type: optimism - args: --features "asm-keccak" --locked --exclude reth --exclude reth-bench --exclude "example-*" --exclude "reth-ethereum-*" --exclude "*-ethereum" - partition: 2 - total_partitions: 2 + features: asm-keccak + exclude_args: --exclude reth --exclude reth-bench --exclude "example-*" --exclude "reth-ethereum-*" --exclude "*-ethereum" timeout-minutes: 30 steps: - uses: actions/checkout@v6 @@ -59,7 +53,8 @@ jobs: - name: Run tests run: | cargo nextest run \ - ${{ matrix.args }} --workspace \ + --features "${{ matrix.features }} $EDGE_FEATURES" --locked \ + ${{ matrix.exclude_args }} --workspace \ --exclude ef-tests --no-tests=warn \ --partition hash:${{ matrix.partition }}/2 \ -E "!kind(test) and not binary(e2e_testsuite)" @@ -99,24 +94,6 @@ jobs: cache-on-failure: true - run: cargo nextest run --release -p ef-tests --features "asm-keccak ef-tests" - rocksdb: - name: rocksdb tests - runs-on: depot-ubuntu-latest-4 - env: - RUST_BACKTRACE: 1 - timeout-minutes: 30 - steps: - - uses: actions/checkout@v6 - - uses: rui314/setup-mold@v1 - - uses: dtolnay/rust-toolchain@stable - - uses: mozilla-actions/sccache-action@v0.0.9 - - uses: Swatinem/rust-cache@v2 - with: - cache-on-failure: true - - uses: taiki-e/install-action@nextest - - name: Run RocksDB tests - run: cargo nextest run -p reth-provider -p reth-stages --features "rocksdb" --locked - doc: name: doc tests runs-on: depot-ubuntu-latest @@ -138,7 +115,7 @@ jobs: name: unit success runs-on: ubuntu-latest if: always() - needs: [test, state, rocksdb, doc] + needs: [test, state, doc] timeout-minutes: 30 steps: - name: Decide whether the needed jobs succeeded or failed