val 0.7.0

An arbitrary precision calculator language
Documentation
name: Web

on:
  push:
    branches: ['master']
  pull_request:
    branches: ['*']
  workflow_dispatch:

permissions:
  contents: read

concurrency:
  group: web-${{ github.ref }}
  cancel-in-progress: true

jobs:
  build:
    runs-on: ubuntu-24.04

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Setup Rust
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: 1.99.0
          target: wasm32-unknown-unknown

      - name: Setup Emscripten
        uses: mymindstorm/setup-emsdk@v14
        with:
          version: 6.0.12

      - name: Setup build tools
        uses: taiki-e/install-action@v2
        with:
          tool: just@1.58.0,wasm-pack@0.15.0

      - name: Setup Bun
        uses: oven-sh/setup-bun@v1
        with:
          bun-version: 1.4.3

      - name: Install dependencies
        working-directory: ./www
        run: bun install --frozen-lockfile

      - name: Lint
        working-directory: ./www
        run: bun run lint

      - name: Build and test WASM
        run: just test-wasm

      - name: Check generated types
        run: git diff --exit-code -- www/packages/val-wasm/val.d.ts

      - name: Build
        working-directory: ./www
        run: bun run build