Skip to content

Register machine wasmi execution engine #2670

Register machine wasmi execution engine

Register machine wasmi execution engine #2670

Workflow file for this run

name: Rust - Continuous Integration
on:
push:
branches: [master]
pull_request:
branches: [master]
# disable running jobs on earlier commits
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
check:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
target: wasm32-unknown-unknown
override: true
- name: Set up Cargo cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: Add extra targets
# Workaround for https://github.com/actions-rs/toolchain/issues/165
run: |
rustup target add thumbv7em-none-eabi
- name: Build (default features)
uses: actions-rs/cargo@v1
with:
command: build
args: --workspace
- name: Build (all features)
uses: actions-rs/cargo@v1
with:
command: build
args: --workspace --all-features
- name: Build (no_std)
uses: actions-rs/cargo@v1
with:
command: build
args: --workspace --lib --no-default-features --target thumbv7em-none-eabi --exclude wasmi_cli --exclude wasmi_wasi
- name: Build (wasm32)
uses: actions-rs/cargo@v1
with:
command: build
args: --workspace --lib --no-default-features --target wasm32-unknown-unknown --exclude wasmi_cli --exclude wasmi_wasi
test:
name: Test
strategy:
matrix:
# windows-latest was pinned to windows-2019
# because of https://github.com/paritytech/wasmi/runs/5021520759
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Set up Cargo cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: Checkout Submodules
run: git submodule update --init --recursive
- name: Test (default features)
uses: actions-rs/cargo@v1
env:
RUSTFLAGS: "--cfg debug_assertions"
with:
command: test
args: --workspace --release
- name: Test (all features)
uses: actions-rs/cargo@v1
env:
RUSTFLAGS: "--cfg debug_assertions"
with:
command: test
args: --workspace --release --all-features
fmt:
name: Formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
components: rustfmt
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
doc:
name: Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rust-docs, rust-src
- name: Set up Cargo cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- uses: actions-rs/cargo@v1
env:
RUSTDOCFLAGS: "-D warnings"
with:
command: doc
args: --workspace --all-features --no-deps --document-private-items
audit:
name: Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- uses: actions-rs/cargo@v1
with:
command: audit
args: ""
udeps:
name: uDeps
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
- name: Set up Cargo cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-udeps-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-udeps-
- name: Checkout Submodules
run: git submodule update --init --recursive
- name: Install cargo-udeps
run: |
# Note: We use `|| true` because cargo install returns an error
# if cargo-udeps was already installed on the CI runner.
cargo install --locked cargo-udeps || true
- uses: actions-rs/cargo@v1
with:
command: udeps
args: --all-targets
fuzz:
name: Fuzzing
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
- name: Set up Cargo cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
fuzz/target/
key: ${{ runner.os }}-cargo-fuzz-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-fuzz-
- name: Checkout Submodules
run: git submodule update --init --recursive
- name: Install cargo-fuzz
run: |
# Note: We use `|| true` because cargo install returns an error
# if cargo-udeps was already installed on the CI runner.
cargo install --locked cargo-fuzz || true
- name: Fuzz Translate
uses: actions-rs/cargo@v1
with:
command: fuzz
args: run translate -j 2 --verbose -- -max_total_time=60 # 1 minute of fuzzing
- name: Fuzz Translate (metered)
uses: actions-rs/cargo@v1
with:
command: fuzz
args: run translate -j 2 --verbose -- -max_total_time=60 # 1 minute of fuzzing
miri:
name: Miri
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
components: miri
- name: Set up Cargo cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-miri-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-miri-
- name: Miri (--lib)
uses: actions-rs/cargo@v1
with:
command: miri
args: test --lib --workspace
- name: Miri (--doc)
uses: actions-rs/cargo@v1
with:
command: miri
args: test --doc --workspace
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
components: clippy
- name: Set up Cargo cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-
- name: Clippy (default features)
uses: actions-rs/cargo@v1
with:
command: clippy
args: --workspace -- -D warnings
- name: Clippy (all features)
uses: actions-rs/cargo@v1
with:
command: clippy
args: --workspace --all-features -- -D warnings
- name: Clippy (no_std)
uses: actions-rs/cargo@v1
with:
command: clippy
args: --workspace --no-default-features -- -D warnings
- name: Clippy (tests)
uses: actions-rs/cargo@v1
with:
command: clippy
args: --workspace --tests -- -D warnings
coverage:
name: Coverage
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Set up Cargo cache
uses: actions/cache@v3
continue-on-error: false
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-coverage-${{ hashFiles('**/Cargo.lock') }}
restore-keys: ${{ runner.os }}-cargo-coverage-
- name: Checkout Submodules
run: git submodule update --init --recursive
- name: Run cargo-tarpaulin (default features)
uses: actions-rs/tarpaulin@v0.1
with:
version: "0.18.0"
args: --workspace
- name: Upload to codecov.io
uses: codecov/codecov-action@v3.1.4
with:
token: ${{secrets.CODECOV_TOKEN}}
- name: Archive code coverage results
uses: actions/upload-artifact@v3
with:
name: code-coverage-report
path: cobertura.xml