name: Publish to NPM

on:
  push:
    tags:
      - 'v*.*.*' # Trigger only on version tags

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      # Step 1: Checkout the code
      - name: Checkout repository
        uses: actions/checkout@v2

      # Step 2: Set up Node.js
      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '16'
          registry-url: 'https://registry.npmjs.org'

      # Step 3: Install dependencies
      - name: Install dependencies
        run: npm ci

      # Step 4: Run lint
      - name: Run Lint
        run: npm run lint

      # Step 5: Publish to NPM
      - name: Publish to NPM
        run: npm publish --loglevel verbose
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
