name: Rust
on:
release:
types: [created]
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
registry-url: 'https://registry.npmjs.org'
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2022-09-23
target: wasm32-wasi
profile: minimal
override: true
components: rustfmt, clippy
- name: Format Crate
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
- name: Check Crate
uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings
- name: Test Crate
uses: actions-rs/cargo@v1
with:
command: test
- name: Build Crate
uses: actions-rs/cargo@v1
with:
command: build-wasi
args: --verbose --release
- name: Publish Crate
uses: katyo/publish-crates@v1
with:
registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }}
- name: Publish NPM Package
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}