mirror of
https://github.com/fluencelabs/aquavm
synced 2024-12-04 15:20:16 +00:00
Migrate air workflow to github-actions (#281)
This commit is contained in:
parent
4acfb19e08
commit
4201ecce6b
@ -1,49 +0,0 @@
|
||||
version: 2
|
||||
jobs:
|
||||
air:
|
||||
docker:
|
||||
- image: circleci/rust:latest
|
||||
resource_class: medium+
|
||||
environment:
|
||||
RUST_BACKTRACE: 1
|
||||
RUST_TEST_THREADS: 1
|
||||
steps:
|
||||
- checkout
|
||||
- restore_cache:
|
||||
keys:
|
||||
- air01-{{ checksum "Cargo.lock" }}
|
||||
- run: |
|
||||
rustup toolchain install nightly-2022-03-20-x86_64-unknown-linux-gnu
|
||||
rustup default nightly-2022-03-20-x86_64-unknown-linux-gnu
|
||||
|
||||
rustup target add wasm32-wasi
|
||||
rustup component add rustfmt
|
||||
rustup component add clippy
|
||||
|
||||
cargo install --force marine
|
||||
|
||||
# build a Wasm binary for interpreter
|
||||
(cd air-interpreter; marine build --features marine)
|
||||
|
||||
# build Wasm binaries for tests
|
||||
(cd air/tests/test_module; ./build_test_binaries.sh)
|
||||
|
||||
cargo fmt --all -- --check --color always
|
||||
cargo check
|
||||
cargo test --release
|
||||
# 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
|
||||
cargo clippy -v
|
||||
|
||||
- save_cache:
|
||||
paths:
|
||||
- ~/.cargo
|
||||
- ~/.rustup
|
||||
key: air01-{{ checksum "Cargo.lock" }}
|
||||
workflows:
|
||||
version: 2
|
||||
air:
|
||||
jobs:
|
||||
- air
|
14
.github/download_marine.sh
vendored
Executable file
14
.github/download_marine.sh
vendored
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
set -o pipefail -o errexit -o nounset
|
||||
set -x
|
||||
|
||||
MARINE_RELEASE="https://api.github.com/repos/fluencelabs/marine/releases/latest"
|
||||
OUT_DIR=/usr/local/bin
|
||||
|
||||
# get metadata about release
|
||||
curl -s -H "Accept: application/vnd.github.v3+json" $MARINE_RELEASE |
|
||||
# extract url and name for asset with name "marine"
|
||||
# also append $OUT_DIR to each name so file is saved to $OUT_DIR
|
||||
jq -r ".assets | .[] | select(.name == \"marine\") | \"\(.browser_download_url) $OUT_DIR/\(.name)\"" |
|
||||
# download assets
|
||||
xargs -n2 bash -c 'curl -L $0 -o $1 && chmod +x $1'
|
58
.github/workflows/aquavm.yml
vendored
Normal file
58
.github/workflows/aquavm.yml
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
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
|
||||
# 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
|
Loading…
Reference in New Issue
Block a user