name: publish
on:
workflow_dispatch: {}
push:
tags:
- '*'
permissions:
id-token: write
contents: read
jobs:
cargo:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: dsherret/rust-toolchain-file@3551321aa44dd44a0393eb3b6bdfbc5d25ecf621 - id: auth
uses: rust-lang/crates-io-auth-action@b7e9a28eded4986ec6b1fa40eeee8f8f165559ec - name: Cargo publish
env:
CARGO_REGISTRY_TOKEN: '${{ steps.auth.outputs.token }}'
run: cargo publish
npm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd - uses: dsherret/rust-toolchain-file@3551321aa44dd44a0393eb3b6bdfbc5d25ecf621 - name: Install wasm32 target
run: rustup target add wasm32-unknown-unknown
- name: Build release
run: cargo build --target wasm32-unknown-unknown --features wasm --release
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e with:
node-version: 24.x
registry-url: 'https://registry.npmjs.org'
- name: Setup and test npm deployment
run: |-
cd deployment/npm
npm install
node setup.js sync-version
- name: npm publish
run: |-
cd deployment/npm
npm publish --access public