feat(levm): implement precompile ecpairing #1126
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: LEVM | |
on: | |
push: | |
branches: ["main"] | |
pull_request: | |
branches: ["**"] | |
paths: | |
- "crates/vm/levm/**" | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
env: | |
CARGO_TERM_COLOR: always | |
RUST_VERSION: 1.81.0 | |
jobs: | |
ef-test: | |
# "Integration Test" is a required check, don't change the name | |
name: Integration Test | |
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 run-evm-ef-tests-ci | tee test_result.txt | |
- name: Show test summary | |
run: | | |
cd crates/vm/levm | |
awk '/Summary: /,0' test_result.txt | |
test: | |
# "Test" is a required check, don't change the name | |
name: Test | |
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: Run tests | |
run: | | |
cd crates/vm/levm | |
make test | |
bench: | |
name: Benchmarks (LEVM vs REVM) | |
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: Set up cargo cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Install hyperfine | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: hyperfine@1.16 | |
- name: Run benchmarks | |
run: | | |
cd crates/vm/levm | |
make revm-comparison | |
lint: | |
# "Lint" is a required check, don't change the name | |
name: Lint | |
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 }} | |
components: rustfmt, clippy | |
- name: Add Rust Cache | |
uses: Swatinem/rust-cache@v2 | |
- name: Run cargo check | |
run: | | |
cd crates/vm/levm | |
cargo check | |
- name: Run cargo build | |
run: | | |
cd crates/vm/levm | |
cargo build | |
- name: Run cargo clippy | |
run: | | |
cd crates/vm/levm | |
cargo clippy --all-targets --all-features -- -D warnings | |
- name: Run cargo fmt | |
run: | | |
cd crates/vm/levm | |
cargo fmt --all -- --check |