aquavm/.github/workflows/aquavm.yml
Ivan Boldyrev 0eb37800b6
AquaVM benchmarks (#283)
* Fix stale benchmarks
* Data (de)serialization and execution benchmarks:

Two kind of benchmark: relatively short, but with huge call results, and
long trace of small call results.  Moreover, there are two case for each:
with same data to be merged with comparison, and data from different
par branches merged w/o comparison.
2022-07-08 21:07:04 +07:00

61 lines
1.5 KiB
YAML

name: "aquavm"
on:
pull_request:
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true
jobs:
air:
name: "Run aquavm tests"
runs-on: builder
env:
RUST_BACKTRACE: 1
RUST_TEST_THREADS: 1
CARGO_TERM_COLOR: always
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2022-06-29
target: wasm32-wasi
components: rustfmt, clippy
- name: "Cache rust"
uses: Swatinem/rust-cache@v1
- name: "Download marine"
run: .github/download_marine.sh
- name: "Build Wasm binary for interpreter"
run: marine build --features marine
working-directory: air-interpreter
- name: "Build Wasm binary for tests"
run: ./build_test_binaries.sh
working-directory: air/tests/test_module
- name: "cargo fmt"
run: cargo fmt --all -- --check
- name: "cargo check"
run: cargo check
- name: "cargo test"
run: |
cargo test --release
# Check that it does compile
cargo bench --no-run
# The `memory` sanitizer on cargo test has false positive even on empty project.
for san in address leak; do
RUSTFLAGS="-Z sanitizer=$san" cargo test --features test_with_native_code --target x86_64-unknown-linux-gnu
done
- name: "cargo clippy"
run: cargo clippy -v