name: Deploy npm package

on:
  push:
    branches:
      - master

jobs:
  update-and-publish:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: '16'
          registry-url: 'https://registry.npmjs.org/'

      - name: Configure npm
        run: |
          npm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_AUTH_TOKEN }}
          npm whoami

      - name: Update npm version and publish
        run: |
          npm version --no-git-tag-version $(npm view . version) || true
          npm view . version
          npm version --no-git-tag-version minor
          npm publish
          echo "NPM_PACKAGE_VERSION=$(npm view . version)" >> $GITHUB_ENV

  push-version-change:
    needs: update-and-publish
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3

      - name: Push version change to repository
        run: |
          git config --global user.name 'Konxtract pipeline'
          git config --global user.email 'caio.mendes@prolancer.bossabox.com'
          git add .
          git commit -m "Update npm version to ${{ env.NPM_PACKAGE_VERSION }}"
          git push origin master