Register machine wasmi
execution engine
#2671
Workflow file for this run
This file contains 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: 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/[email protected] | |
with: | |
version: "0.18.0" | |
args: --workspace | |
- name: Upload to codecov.io | |
uses: codecov/[email protected] | |
with: | |
token: ${{secrets.CODECOV_TOKEN}} | |
- name: Archive code coverage results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: code-coverage-report | |
path: cobertura.xml |