Daily Reports #34
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: 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@v4 | |
- 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.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@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: "*_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 | |
loc: | |
name: Count ethrex loc and generate report | |
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: Add Rust Cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Restore cache | |
id: cache-loc-report | |
uses: actions/cache@v4 | |
with: | |
path: loc_report.json | |
key: loc-report-${{ github.ref_name }} | |
restore-keys: | | |
loc-report- | |
- name: Check previous loc report | |
run: | | |
cat loc_report.json | |
- name: Rename cached loc_report.json to loc_report.json.old | |
if: steps.cache-loc-report.outputs.cache-hit == 'true' | |
run: mv loc_report.json loc_report.json.old | |
- name: Generate the loc report | |
run: | | |
make loc | |
- name: Save new loc_report.json to cache | |
if: success() | |
uses: actions/cache@v4 | |
with: | |
path: loc_report.json | |
key: loc-report-${{ github.ref_name }} | |
- name: Post results in summary | |
run: | | |
echo "# 'ethrex' lines of code report" >> $GITHUB_STEP_SUMMARY | |
cat loc_report_github.txt >> $GITHUB_STEP_SUMMARY | |
- name: Post results to ethrex L1 slack channel | |
env: | |
url: ${{ secrets.ETHREX_L1_SLACK_WEBHOOK }} | |
run: sh .github/scripts/publish_loc.sh | |
- name: Post results to ethrex L2 slack channel | |
env: | |
url: ${{ secrets.ETHREX_L2_SLACK_WEBHOOK }} | |
run: sh .github/scripts/publish_loc.sh | |
- name: Post results to levm slack channel | |
env: | |
url: ${{ secrets.LEVM_SLACK_WEBHOOK }} | |
run: sh .github/scripts/publish_loc.sh | |
# This is left commented out to ease debugging later on. | |
# Comment out all the other "Post to * slack channel" directives | |
# - name: Post results to test slack channel | |
# env: | |
# url: ${{ secrets.TEST_CHANNEL_SLACK }} | |
# run: sh .github/scripts/publish_loc.sh | |
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 |