sea-codec 0.8.0

Low-complexity, lossy audio codec designed for embedded devices
Documentation
name: Build and Publish WASM

permissions:
  contents: write

on:
  push:
    branches:
      - master

jobs:
  build-and-publish:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Set up Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          override: true
          target: wasm32-unknown-unknown

      - name: Run cargo check
        uses: actions-rs/cargo@v1
        with:
          command: check

      - name: Build WASM file
        env:
          RUSTFLAGS: -C link-arg=--allow-undefined
        run: |
          cargo build --release --features wasm-api --target wasm32-unknown-unknown
          cp ./target/wasm32-unknown-unknown/release/sea_codec.wasm ./web/codec.wasm

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 22

      - name: Build web dependencies
        run: |
          cd web
          npm install
          npm run build

      - name: Rewrite .gitignore to only contain node_modules
        run: echo "node_modules" > web/.gitignore

      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v4
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./web # Publish the web folder
          destination_dir: . # Publish to the root of gh-pages
          force_orphan: true