Skip to content

Commit

Permalink
ci(core): cleanup and standarize workflows. (#1404)
Browse files Browse the repository at this point in the history
**Motivation**
Have standarized code across workflows

**Description**
- Merged all reports into `daily_reports` workflow
- Fixed target pull request on `ci_gha` workflow
- Added `cancel-in-progress` for the workflows that were missing
  • Loading branch information
mpaulucci authored Dec 6, 2024
1 parent e4d285a commit 716273b
Show file tree
Hide file tree
Showing 8 changed files with 215 additions and 230 deletions.
7 changes: 5 additions & 2 deletions .github/workflows/ci_gha.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
name: Github Actions
on:
pull_request:
branches:
- main
branches: ["**"]
paths:
".github/**.yaml"

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
lint:
name: Lint
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci_levm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
- "crates/vm/levm/**"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

env:
Expand Down
5 changes: 5 additions & 0 deletions .github/workflows/ci_skipped.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ on:
- '!**/*.rlp'
- '!**Dockefile'
- '!**Makefile'

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
lint:
# "Lint" is a required check, don't change the name
Expand Down
200 changes: 200 additions & 0 deletions .github/workflows/daily_reports.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,200 @@
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: 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

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
101 changes: 0 additions & 101 deletions .github/workflows/hive_coverage.yaml

This file was deleted.

56 changes: 0 additions & 56 deletions .github/workflows/levm_reporter.yaml

This file was deleted.

Loading

0 comments on commit 716273b

Please sign in to comment.