name: Node CI

# Push tests commits; pull_request tests PR merges
on: [ push, pull_request ]

defaults:
  run:
    shell: bash

jobs:
  # ----- Only git tag testing + package publishing beyond this point ----- #

  # Publish to package registries
  publish:
    # Setup
    if: startsWith(github.ref, 'refs/tags/v')
    runs-on: ubuntu-latest

    # Go
    steps:
      - name: Check out repo
        uses: actions/checkout@v3

      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          registry-url: https://registry.npmjs.org/

      - name: Install
        run: npm ci

      # Publish to npm
      - name: Publish @RC to npm
        if: contains(github.ref, 'RC')
        run: npm publish --tag RC --access public
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

      - name: Publish @latest to npm
        if: contains(github.ref, 'RC') == false #'!contains()'' doesn't work lol
        run: npm publish --access public
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

