Skip to content

Daily Hive Coverage #11

Daily Hive Coverage

Daily Hive Coverage #11

name: Daily Hive Coverage
on:
schedule:
# Every day at UTC midnight
- cron: "0 0 * * *"
workflow_dispatch:
env:
RUST_VERSION: 1.81.0
jobs:
run-hive:
name: Run engine hive simulator to gather coverage information.
runs-on: ubuntu-latest
strategy:
matrix:
include:
- name: "Rpc Compat tests"
file_name: rpc-compat
simulation: ethereum/rpc-compat
- name: "Devp2p eth tests"
file_name: devp2p
simulation: devp2p
- name: "Cancun Engine tests"
file_name: engine
simulation: ethereum/engine
- name: "Sync tests"
file_name: sync
simulation: ethereum/sync
steps:
- name: Pull image
run: |
docker pull ghcr.io/lambdaclass/ethrex:latest
docker tag ghcr.io/lambdaclass/ethrex:latest ethrex:latest
- name: Checkout sources
uses: actions/checkout@v3
- name: Setup Go
uses: actions/setup-go@v3
- name: Setup Hive
run: make setup-hive
- name: Run Hive Simulation
run: cd hive && ./hive --client ethrex --sim ${{ matrix.simulation }} --sim.parallelism 4
continue-on-error: true
- name: Upload results
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.file_name }}_logs
path: hive/workspace/logs/*-*.json
hive-report:
name: Generate report and upload to summary and slack
needs: run-hive
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3
- name: Rustup toolchain install
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.RUST_VERSION }}
- name: Download all results
uses: actions/download-artifact@v4
with:
path: hive/workspace/logs
pattern: "*_logs"
merge-multiple: true
- name: Caching
uses: Swatinem/rust-cache@v2
- name: Generate the hive report
run: cargo run -p hive_report > results.md
- name: Post results in summary
run: |
echo "# Hive coverage report" >> $GITHUB_STEP_SUMMARY
cat results.md >> $GITHUB_STEP_SUMMARY
- name: Post results to ethrex L1 slack channel
env:
url: ${{ secrets.ETHREX_L1_SLACK_WEBHOOK }}
run: sh .github/scripts/publish.sh
- name: Post results to ethrex L2 slack channel
env:
url: ${{ secrets.ETHREX_L2_SLACK_WEBHOOK }}
run: sh .github/scripts/publish.sh
- name: Post results to levm slack channel
env:
url: ${{ secrets.LEVM_SLACK_WEBHOOK }}
run: sh .github/scripts/publish.sh