name: publish-to-npm
on:
  workflow_dispatch:
    inputs:
      version:
        description: 'The updated registry version number.'
        required: true

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2.4.0
        with:
          ref: dev

      # Setup .npmrc file to publish to npm
      - uses: actions/setup-node@v2.5.1
        with:
          node-version: 'v14.18.1'
          registry-url: 'https://registry.npmjs.org'
          scope: '@jamesives'

      - name: Configure Git
        run: |
          git config user.email "iam@jamesiv.es"
          git config user.name "James Ives"

      - name: Install Yarn
        run: npm install -g yarn

      - run: yarn install --frozen-lockfile
      - run: yarn build
      - run: npm version ${{ github.event.inputs.version }} -m "Release ${{ github.event.inputs.version }} 📣"
      - run: git push

      # Publish to npm
      - run: npm publish --access public
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

      # Setup .npmrc file to publish to GitHub Packages
      - uses: actions/setup-node@v2.5.1
        with:
          node-version: 12
          registry-url: 'https://npm.pkg.github.com'
          scope: '@jamesives'

      - name: Authenticate with the GitHub Package Registry
        run:
          echo "//npm.pkg.github.com:_authToken=${{ secrets.GITHUB_TOKEN }}" >
          ~/.npmrc

      # Publish to GitHub Packages
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
