name: Publish Package to NPM

on:
  release:
    types: [published]
  workflow_dispatch:

jobs:
  publish-npm:
    env:
      NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
    name: Publish Job
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '22'
          registry-url: https://registry.npmjs.org/
      - run: npm ci --ignore-scripts
      - run: npm run build
      - run: npm publish
      - name: Create Git Tag
        run: |
          VERSION=$(node -p "require('./package.json').version")
          git config user.name "GitHub Actions"
          git config user.email "actions@github.com"
          git tag v$VERSION
          git push origin v$VERSION
