Skip to content

feat: refactor core into simplified WASM module #228

feat: refactor core into simplified WASM module

feat: refactor core into simplified WASM module #228

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
- run: rustup component add rustfmt
- uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
build_wasm:
name: Build WASM
strategy:
fail-fast: false
matrix:
toolchain:
- nightly
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 }}
- run: rustup target add wasm32-unknown-unknown
- run: rustup component add rust-src
- run: make wasm
- name: Run cargo check
uses: actions-rs/cargo@v1
with:
command: check
args: --all-targets
- name: Build project
uses: actions-rs/cargo@v1
with:
command: rustc
args: --release --target ${{ matrix.target }} -- -C link-args=-s
- name: Set up node
if: startsWith(github.ref, 'refs/tags/v')
uses: actions/setup-node@v2
with:
node-version: 16
registry-url: https://npm.pkg.github.com
- name: Install Binaryen
if: startsWith(github.ref, 'refs/tags/v')
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
- name: Publish package
if: startsWith(github.ref, 'refs/tags/v')
# 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
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 }}
- run: rustup target add wasm32-unknown-unknown
- run: rustup component add rust-src
- run: make wasm
- name: Run cargo check
uses: actions-rs/cargo@v1
with:
command: check
args: --all-targets
- name: Test project
uses: actions-rs/cargo@v1
with:
command: test
# - name: Install kcov
# if: ${{ matrix.os == 'ubuntu-latest' && matrix.toolchain == 'nightly' }}
# run: sudo apt install -y kcov
#
# - name: Build test executable
# if: ${{ matrix.os == 'ubuntu-latest' && matrix.toolchain == 'nightly' }}
# 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' && matrix.toolchain == 'nightly' }}
# # 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' && matrix.toolchain == 'nightly' }}
# uses: codecov/codecov-action@v1.0.2
# with:
# token: ${{secrets.CODECOV_TOKEN}}