feat(levm): hive LEVM CI #2
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 Hive LEVM | |
on: | |
push: | |
branches: ["main"] | |
merge_group: | |
pull_request: | |
branches: ["**"] | |
# Uncomment this after testing | |
# on: | |
# schedule: | |
# # Every day at UTC midnight | |
# - cron: "0 0 * * 1,2,3,4,5" | |
# workflow_dispatch: | |
env: | |
RUST_VERSION: 1.81.0 | |
jobs: | |
docker_build: | |
# "Build Docker" is a required check, don't change the name | |
name: Build Docker | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Build Docker image | |
uses: docker/build-push-action@v6 | |
with: | |
context: . | |
file: ./Dockerfile | |
load: true | |
tags: ethrex | |
outputs: type=docker,dest=/tmp/ethrex_image.tar | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ethrex_image | |
path: /tmp/ethrex_image.tar | |
run-hive: | |
name: Hive - ${{ matrix.name }} | |
needs: docker_build | |
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: 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 16 | |
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 | |
# uncomment this afterwards (I think) | |
# - name: Post results in summary | |
# run: | | |
# echo "# LEVM Hive coverage report" >> $GITHUB_STEP_SUMMARY | |
# cat results.md >> $GITHUB_STEP_SUMMARY | |
# - name: Post results to levm slack channel | |
# env: | |
# url: ${{ secrets.LEVM_SLACK_WEBHOOK }} | |
# run: sh .github/scripts/publish.sh | |
- name: Post results to test channel for debugging | |
env: | |
url: ${{ secrets.TEST_CHANNEL_SLACK }} | |
run: sh .github/scripts/publish.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 | |