name: NPM Package

on:
  release:
    types: [created]

jobs:
  publish-npm:
    name: Build
    runs-on: ubuntu-latest
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4
      with:
        # We must fetch at least the immediate parents so that if this is
        # a pull request then we can checkout the head.
        fetch-depth: 2

    # If this run was triggered by a pull request event, then checkout
    # the head of the pull request instead of the merge commit.
    - run: git checkout HEAD^2
      if: ${{ github.event_name == 'pull_request' }}

    - name: Setup NodeJS
      uses: actions/setup-node@v4
      with:
        node-version: 18
        registry-url: 'https://registry.npmjs.org'

    - run: |
        npm ci
        npm run lint
        npm test

    - name: Publishing to NPM
      run: npm publish
      env:
        NODE_AUTH_TOKEN: ${{secrets.npm_token}}
