Daily Reports #108
Workflow file for this run
This file contains 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: Daily Reports | |
on: | |
schedule: | |
# Every day at UTC midnight | |
- cron: "0 0 * * 1,2,3,4,5" | |
workflow_dispatch: | |
env: | |
RUST_VERSION: 1.81.0 | |
jobs: | |
run-hive: | |
name: Hive (${{ matrix.vm }}) - ${{ matrix.test.name }} | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
vm: [levm, revm] | |
test: | |
- { | |
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 | |
if: ${{ matrix.vm == 'revm' }} | |
run: | | |
docker pull ghcr.io/lambdaclass/ethrex:latest | |
docker tag ghcr.io/lambdaclass/ethrex:latest ethrex:latest | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Build Image with LEVM | |
if: ${{ matrix.vm == 'levm' }} | |
run: cd crates/vm/levm && make build-image-levm | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
- name: Setup Hive | |
run: make setup-hive | |
- name: Run Hive Simulation | |
run: cd hive && ./hive --client ethrex --sim ${{ matrix.test.simulation }} --sim.parallelism 16 | |
continue-on-error: true | |
- name: Upload results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.test.file_name }}_${{ matrix.vm }}_logs | |
path: hive/workspace/logs/*-*.json | |
hive-report: | |
name: Generate report and upload to slack (${{ matrix.vm }}) | |
needs: run-hive | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
vm: [levm, revm] | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- 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: "*_$${{ matrix.vm }}_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 (${{ matrix.vm }})" >> $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: | | |
if [ "${{ matrix.vm }}" = "revm" ]; then | |
sh .github/scripts/publish.sh | |
elif [ "${{ matrix.vm }}" = "levm" ]; then | |
sh .github/scripts/publish_levm_hive.sh | |
fi | |
levm-test: | |
name: Generate Report for LEVM EF Tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Rustup toolchain install | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ env.RUST_VERSION }} | |
- name: Caching | |
uses: Swatinem/rust-cache@v2 | |
- name: Download EF Tests | |
run: | | |
cd crates/vm/levm | |
make download-evm-ef-tests | |
- name: Run tests | |
run: | | |
cd crates/vm/levm | |
make generate-evm-ef-tests-report | |
- name: Post results in summary | |
run: | | |
echo "# Daily LEVM EF Tests Run Report" >> $GITHUB_STEP_SUMMARY | |
cat cmd/ef_tests/levm/levm_ef_tests_summary_github.txt >> $GITHUB_STEP_SUMMARY | |
- name: Post results to ethrex L2 slack channel | |
env: | |
url: ${{ secrets.ETHREX_L2_SLACK_WEBHOOK }} | |
run: sh .github/scripts/publish_levm_ef_tests_summary.sh | |
- name: Post results to levm slack channel | |
env: | |
url: ${{ secrets.LEVM_SLACK_WEBHOOK }} | |
run: sh .github/scripts/publish_levm_ef_tests_summary.sh |