name: preview

on: [pull_request]

permissions:
  contents: read

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

jobs:
  preview:
    runs-on: ubuntu-latest
    timeout-minutes: 10
    steps:
      - name: checkout
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
        with:
          fetch-depth: 0
          submodules: true
          persist-credentials: false

      - name: setup deno
        uses: denoland/setup-deno@22d081ff2d3a40755e97629de92e3bcbfa7cf2ed # v2.0.5
        with:
          deno-version: v2.x

      - name: build wasm
        run: make

      - name: Get Version
        id: vars
        run: echo "version=$(git describe --abbrev=0 --tags | sed 's/^v//')-pr+$(git rev-parse HEAD)" >> $GITHUB_OUTPUT

      - name: Setup Node
        uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
        with:
          node-version: 24

      - name: Build NPM
        run: deno task build:npm "${STEPS_VARS_OUTPUTS_VERSION}"
        env:
          STEPS_VARS_OUTPUTS_VERSION: ${{steps.vars.outputs.version}}

      - name: Publish Preview Versions
        run: npx pkg-pr-new publish './build/npm'
