Skip to content

Merge pull request #89 from dusk-network/release-0.21.0-plonk.0.16 #270

Merge pull request #89 from dusk-network/release-0.21.0-plonk.0.16

Merge pull request #89 from dusk-network/release-0.21.0-plonk.0.16 #270

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 }}
- 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: >
./asyncify.sh &&
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 }}
- name: Run cargo check
uses: actions-rs/cargo@v1
with:
command: check
args: --all-targets
- name: Test project
if: ${{ matrix.os != 'ubuntu-latest' || matrix.toolchain != 'nightly' }}
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}}