# Version tags only

name: Publish

on:
  push:
    tags:
      - v[0-9]+.[0-9]+.[0-9]+

jobs:
  publish:
    name: Publish
    runs-on: ubuntu-latest
    env:
      # It'll work with secrets.GITHUB_TOKEN (which is provided by GitHub unconditionally)
      # Still then release author would be "github-actions"
      GITHUB_TOKEN: ${{ secrets.USER_GITHUB_TOKEN }}
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Retrieve dependencies from cache
        uses: actions/cache@v2
        with:
          path: |
            ~/.npm
            node_modules
          key: npm-v14-${{ runner.os }}-refs/heads/master-${{ hashFiles('package.json') }}

      - name: Install Node.js and npm
        uses: actions/setup-node@v1
        with:
          node-version: 14.x
          registry-url: https://registry.npmjs.org

      - name: Publish new version
        # Note: Setting NODE_AUTH_TOKEN as job|workspace wide env var won't work
        #       as it appears actions/setup-node sets own value
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        run: npm publish
