Skip to content

Drop wasmer in favor of wasmtime for tests #346

Drop wasmer in favor of wasmtime for tests

Drop wasmer in favor of wasmtime for tests #346

Workflow file for this run

on:
push:
tags:
- "v*.*.*"
branches:
- main
pull_request:
name: Dusk CI
jobs:
analyze:
name: Dusk Analyzer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
- uses: actions-rs/cargo@v1
with:
command: install
args: --git https://github.com/dusk-network/cargo-dusk-analyzer
- uses: actions-rs/cargo@v1
with:
command: dusk-analyzer
fmt:
name: Check code formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly-2023-05-22
- run: rustup component add rustfmt
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
build_wasm:
name: Build WASM
if: startsWith(github.ref, 'refs/tags/v') && github.event.base_ref == 'refs/heads/main'
strategy:
fail-fast: false
matrix:
toolchain:
- nightly-2023-05-22
target: [ wasm32-unknown-unknown ]
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
- name: Add target
run: rustup target add ${{ matrix.target }}
- name: Run cargo build
uses: actions-rs/cargo@v1
with:
command: build
- name: Add rust-src
run: rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu
- name: Install Binaryen
run: >
wget https://github.com/WebAssembly/binaryen/releases/download/version_105/binaryen-version_105-x86_64-linux.tar.gz &&
tar -xvf binaryen-version_105-x86_64-linux.tar.gz -C ~/.local --strip-components 1
- run: make package
- name: Set up node
uses: actions/setup-node@v2
with:
node-version: 16
registry-url: https://npm.pkg.github.com
- name: Publish package
# Move the compiled package to the root for better paths in the npm module.
# We also automatically populate the version with the given tag.
run: >
make package &&
sed -i "/\"version\": \"0.0.1\"/s/\"0.0.1\"/\"${GITHUB_REF:11}\"/" package.json &&
npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build_and_test:
name: Test with all features
strategy:
fail-fast: false
matrix:
toolchain:
- nightly-2023-05-22
os:
- ubuntu-latest
runs-on: ${{ matrix.os }}
steps:
- name: Check out repository
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
- name: Add target WASM
run: rustup target add wasm32-unknown-unknown
- name: Add rust-src
run: rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu
- run: make wasm
- name: Run cargo check
uses: actions-rs/cargo@v1
with:
command: check
args: --all-targets
- run: make test
- name: Install kcov
if: ${{ matrix.os == 'ubuntu-latest' && github.ref == 'refs/heads/main' }}
run: sudo apt install -y kcov
- name: Build test executable
if: ${{ matrix.os == 'ubuntu-latest' && github.ref == 'refs/heads/main' }}
uses: actions-rs/cargo@v1
env:
RUSTFLAGS: '-Cdebuginfo=2 -Cinline-threshold=0 -Clink-dead-code'
RUSTDOCFLAGS: '-Cdebuginfo=2 -Cinline-threshold=0 -Clink-dead-code'
with:
command: test
args: --no-run
- name: Test with kcov
if: ${{ matrix.os == 'ubuntu-latest' && github.ref == 'refs/heads/main' }}
# Find every executable resulting from building the tests and run each
# one of them with kcov. This ensures all the code we cover is measured.
run: >
find target/debug/deps -type f -executable ! -name "*.*" |
xargs -n1 kcov --exclude-pattern=tests/,/.cargo,/usr/lib --verify target/cov
- name: Upload coverage
if: ${{ matrix.os == 'ubuntu-latest' && github.ref == 'refs/heads/main' }}
uses: codecov/[email protected]
with:
token: ${{secrets.CODECOV_TOKEN}}