Skip to content

Release WASM

Release WASM #8

Workflow file for this run

name: Release WASM
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
on:
push:
tags:
- "**[0-9]+.[0-9]+.[0-9]+*"
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
targets: x86_64-unknown-linux-gnu
- name: Build
run: |
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
wasm-pack build --target web --release --scope nbittich ./adana-script-wasm
wasm-pack pack ./adana-script-wasm/pkg
mkdir ghPages
cp -r ./adana-script-wasm/pkg ghPages
cp ./adana-playground/app.js ghPages
cp ./adana-playground/style.css ghPages
cp ./adana-playground/favicon.ico ghPages
cp ./adana-playground/examples.js ghPages
cp ./adana-playground/index.html ghPages
- name: Upload pkg
uses: actions/upload-artifact@v4
with:
name: pkg
path: adana-script-wasm/pkg
- name: Upload ghPages
uses: actions/upload-artifact@v4
with:
name: ghPages
path: ghPages
publish:
needs: build
runs-on: ubuntu-latest
steps:
- name: Download pkg
uses: actions/download-artifact@v4
with:
name: pkg
path: pkg
- name: Setup NPM
uses: actions/setup-node@v4
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
with:
node-version: "20.x"
registry-url: "https://registry.npmjs.org"
- name: Publish on NPM
run: |
cd pkg
npm install
npm publish --access public
gh-pages:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
needs: build
runs-on: ubuntu-latest
steps:
- name: Download ghPages
uses: actions/download-artifact@v4
with:
name: ghPages
path: "_site/"
- name: Upload pages
uses: actions/upload-pages-artifact@v3
- name: Deploy pages
uses: actions/deploy-pages@v4