name: Publish
on:
  release:
    types: [ published ]

permissions:
  contents: read
  id-token: write  # Required for OIDC

jobs:
  build:
    permissions:
      contents: read
      actions: write
    runs-on: ubuntu-latest
    steps:
      - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
        with:
          node-version: 24
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - run: npm install
      - run: npm test
      - run: npm run lint

  release:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
        with:
          node-version: 24
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - name: npm release
        run: |
          npm ci
          npm publish --no-git-checks --access public
