Skip to content

0.18 "Span" tracking: wasip2 + drop legacy wasm #1040

0.18 "Span" tracking: wasip2 + drop legacy wasm

0.18 "Span" tracking: wasip2 + drop legacy wasm #1040

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
CARGO_TERM_COLOR: always
jobs:
check:
name: Check & Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy, rustfmt
- uses: Swatinem/rust-cache@v2
- name: Format
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --workspace --all-targets --exclude aver-lang -- -D warnings && cargo clippy -p aver-lang --lib --bin aver -- -D warnings
- name: Test
run: cargo test --workspace
wasm:
name: WASM
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Install WASM tools
env:
BINARYEN_VERSION: version_129
run: |
curl -fsSL "https://github.com/WebAssembly/binaryen/releases/download/${BINARYEN_VERSION}/binaryen-${BINARYEN_VERSION}-x86_64-linux.tar.gz" -o binaryen.tar.gz
tar -xzf binaryen.tar.gz
echo "$PWD/binaryen-${BINARYEN_VERSION}/bin" >> "$GITHUB_PATH"
test -x "$PWD/binaryen-${BINARYEN_VERSION}/bin/wasm-merge"
test -x "$PWD/binaryen-${BINARYEN_VERSION}/bin/wasm-opt"
test -x "$PWD/binaryen-${BINARYEN_VERSION}/bin/wasm-metadce"
- name: Clippy (wasm)
run: cargo clippy -p aver-lang --lib --bin aver --features wasm -- -D warnings
- name: Test (wasm)
run: cargo test -p aver-lang --features wasm
- name: Build (wasm release)
run: cargo build -p aver-lang --features wasm --release
bench:
name: Bench Gate
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Build aver (release)
run: cargo build --release --bin aver
- name: Run bench scenarios
# `--baseline-dir bench/baselines/` auto-picks the file matching
# this runner's host (`<os>-<arch>-vm.json`). When no matching
# baseline exists, the bench run still produces reports but the
# gate is silently skipped — first run on a new host won't fail
# the build, just won't gate. To pin a Linux baseline, run
# `aver bench bench/scenarios/ --target=vm --json --save-baseline
# bench/baselines/linux-x86_64-vm.json` on this runner and
# commit the result.
run: |
./target/release/aver bench bench/scenarios/ \
--target=vm \
--baseline-dir bench/baselines/ \
--fail-on-regression \
--json | tee bench-results.ndjson
- name: Upload bench results
if: always()
uses: actions/upload-artifact@v4
with:
name: bench-results
path: bench-results.ndjson
retention-days: 30