0.16.2 step 4: native wasm-gc record/replay in the playground #963
Workflow file for this run
This file contains hidden or 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: 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 |