name: NPM release

on:
  release:
    types: [ published ]

jobs:
  release:
    runs-on: ubuntu-latest

    steps:
      # Checkout the exact commit tagged on the release.
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          ref: ${{ github.event.release.target_commitish }}

      - name: Validate and extract release information
        id: npm-release
        uses: manovotny/github-releases-for-automated-package-publishing-action@v2.0.1

      - name: Use NodeJS
        uses: actions/setup-node@v4
        with:
          always-auth: true
          node-version: 22.x
          registry-url: https://registry.npmjs.org

      - name: Install dependencies and build
        run: |
          npm install
          npm run build

      - name: Publish version
        if: steps.release.outputs.tag == ''
        run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
