name: On Release

env:
  DIST_LOCATION: "./dist/"
  NPM_SOPE: "@"
  VS_WORKFLOW_TYPE: "gpr-npm-release"

on:
  push:
    branches:
      - master
      - main
    paths:
      - 'package.json'
    tags-ignore:
      - '*'

jobs:
  publish-npm:
    name: "🚀  GPR - NPM Publisher"
    runs-on: ubuntu-latest
    steps:
      - name: "📥  Fetching Repository Contents"
        uses: actions/checkout@main

      - name: "💾  Github Repository Metadata"
        uses: varunsridharan/action-repository-meta@main
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: "💫  VS Utility"
        uses: varunsridharan/action-vs-utility@main

      - name: "⚡  Repository - Before Hook"
        run: |
          echo " "
          if [ -f $VS_BEFORE_HOOK_FILE_LOCATION ]; then
            echo "✅ Before Hook File Found : $VS_BEFORE_HOOK_FILE_LOCATION"
            sh $VS_BEFORE_HOOK_FILE_LOCATION
          else
            echo "⚠️ No Before Hook File Found : $VS_BEFORE_HOOK_FILE_LOCATION"
          fi
          echo " "

      - name: "📐  Installing & Setting UP [NPM]"
        uses: actions/setup-node@v1
        with:
          registry-url: 'https://npm.pkg.github.com'
          scope: ${{env.NPM_SOPE}}${{env.GITHUB_REPOSITORY_OWNER}}

      - name: "🚀  Publishing Release"
        id: npmpublisher
        uses: g-actions/npm-publish@main
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          registry: 'https://npm.pkg.github.com'

      - if: steps.npmpublisher.type != 'none'
        name: "🚀🚀  Creating Github Tag & Release"
        uses: webclipper/create-release@master
        env:
          GITHUB_TOKEN: ${{ secrets.GH_PUBLIC_REPO }}
        with:
          tag_name: ${{steps.npmpublisher.outputs.version}}
          release_name: ${{steps.npmpublisher.outputs.version}}
          body: |
            ---
            ### ___Please Refer [CHANGELOG.md](CHANGELOG.md) detailed information on this release___
            ---
          draft: false
          allow_duplicate: true
          prerelease: false

      - name: "⚡  Repository - After Hook"
        run: |
          echo " "
          if [ -f $VS_AFTER_HOOK_FILE_LOCATION ]; then
            echo "✅ After Hook File Found : $VS_AFTER_HOOK_FILE_LOCATION"
            sh $VS_AFTER_HOOK_FILE_LOCATION
          else
            echo "⚠️ No After Hook File Found : $VS_AFTER_HOOK_FILE_LOCATION"
          fi
          echo " "
