#
# Copyright Super iPaaS Integration LLC, an IBM Company 2024
#
name: Publish CLI package to JFrog

on:
  push:
    branches:
      - 'main'

jobs:
  publish-cli:
    runs-on: cli_runner
    name: Publish CLI package to JFrog
    steps:
      - uses: actions/checkout@v4

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Configure npmrc
        run: |
          echo '@webMethods:registry=https://ico.jfrog.io/artifactory/api/npm/npm-snapshot-local/' > ~/.npmrc
          echo '//ico.jfrog.io/artifactory/api/npm/npm-snapshot-local/:_authToken=${{ secrets.STUDIO_JFROG_NPM_TOKEN }}' >> ~/.npmrc
          echo '//ico.jfrog.io/artifactory/api/npm/npm-snapshot-local/:email=${{ secrets.STUDIO_JFROG_NPM_USER }}' >> ~/.npmrc
          echo '//ico.jfrog.io/artifactory/api/npm/npm-snapshot-local/:always-auth=true' >> ~/.npmrc

      - name: Prepare CLI package version
        id: read_and_set
        run: |
          echo "==== Invoking CLI package latest version ===="
          sh ./scripts/jfrog-publish/get_package_version.sh apim-cli ${{ secrets.STUDIO_JFROG_NPM_USER }} ${{ secrets.STUDIO_JFROG_NPM_IDENTITY_TOKEN }}
          if [ $? -ne 0 ]; then
            echo "Error: Failed to get updated patch version."
            exit 1
          fi
          echo "======== JFrog API invoked successfully ========"

      - name: Upload CLI artifacts to JFrog
        run: |
          echo "==== Uploading CLI artifacts to JFrog ===="
          sh ./scripts/jfrog-publish/upload_artifacts_to_JFrog.sh apim-cli ${{ steps.read_and_set.outputs.cli_version }}
          if [ $? -ne 0 ]; then
            echo "Error: Failed to upload artifact."
            exit 1
          fi
          echo "======== Uploaded in JFrog Registry Successfully ========"
