0.5.0-beta.4 #15
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: Test Suite | |
on: | |
push: | |
branches: | |
- develop | |
pull_request_target: | |
jobs: | |
test_rust: | |
name: Test Rust | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
name: Checkout source | |
- uses: actions/cache@v3 | |
name: Setup Cache | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
simd-target/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Run Rust tests | |
run: | | |
rustup component add llvm-tools-preview | |
cargo install --force grcov | |
npm install -g mocha | |
npm ci | |
cargo clean | |
cargo test | |
grcov . --binary-path ./target/debug -s . -t lcov --branch -o ./coverage.lcov | |
env: | |
RUSTFLAGS: -Cinstrument-coverage | |
LLVM_PROFILE_FILE: '%p-%m.profraw' | |
- name: Publish coverage report | |
uses: codecov/codecov-action@v3 | |
with: | |
file: ./coverage.lcov | |
test_node: | |
name: Test (Node.JS ${{ matrix.node_version }}) | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node_version: [16, 18, 20] | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
name: Checkout source | |
- uses: actions/cache@v3 | |
name: Setup Cache | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
simd-target/ | |
key: ${{ runner.os }}-wasm-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Get npm cache directory | |
id: npm-cache-dir | |
shell: bash | |
run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} | |
- uses: actions/cache@v3 | |
with: | |
path: ${{ steps.npm-cache-dir.outputs.dir }} | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
- uses: actions/setup-node@v3 | |
name: Setup Node.JS | |
with: | |
node-version: ${{ matrix.node_version }} | |
- name: Run WASM tests | |
run: | | |
cargo install wasm-pack --force | |
cargo clean | |
npm install -g mocha | |
npm ci | |
npm test | |
publish: | |
name: Publish | |
runs-on: ubuntu-latest | |
needs: | |
- test_node | |
- test_rust | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
check-latest: true | |
- name: Install dependencies | |
run: | | |
npm ci | |
cargo install wasm-pack --force | |
cargo clean | |
- name: Publish | |
run: | | |
if git log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+$"; | |
then | |
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc | |
npm publish --access public | |
elif git log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+"; | |
then | |
echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc | |
npm publish --tag next --access public | |
else | |
echo "Not a release, skipping publish" | |
fi | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |