name: Deploy Storybook to Temploy

on:
  issue_comment:
    types: [ created ]

concurrency:
  group: storybook-staging-${{ github.head_ref }}
  cancel-in-progress: true

jobs:
  deploy-storybook-temploy:
    name: Build & Deploy Storybook image
    if: github.event.issue.pull_request && github.event.comment.body == '@toptal-bot run storybook-temploy'
    timeout-minutes: 45
    runs-on: ubuntu-latest
    permissions: write-all
    steps:
      - name: Get the secrets from GSM
        id: secrets_manager
        uses: toptal/actions/gsm-secrets@main
        with:
          workload_identity_provider: projects/858873486241/locations/global/workloadIdentityPools/gha-pool/providers/github-com
          service_account: gha-davinci@toptal-ci.iam.gserviceaccount.com
          secrets_name: |-
            JENKINS_CLIENT_ID:toptal-ci/JENKINS_CLIENT_ID
            JENKINS_URL:toptal-ci/JENKINS_URL
            JENKINS_SA_CREDENTIALS:toptal-ci/JENKINS_SA_CREDENTIALS
            NPM_TOKEN_PUBLISH:toptal-ci/NPM_TOKEN_PUBLISH
            TOPTAL_DEVBOT_TOKEN:toptal-ci/TOPTAL_DEVBOT_TOKEN
            TOPTAL_TRIGGERBOT_TOKEN:toptal-ci/TOPTAL_TRIGGERBOT_TOKEN
            TOPTAL_TRIGGERBOT_USERNAME:toptal-ci/TOPTAL_TRIGGERBOT_USERNAME

      - name: Parse secrets
        id: parse_secrets
        uses: toptal/actions/expose-json-outputs@main
        with:
          json: ${{ steps.secrets_manager.outputs.secrets }}

      - name: Set ENV Variables
        run: |-
          echo "GITHUB_TOKEN=${{ steps.parse_secrets.outputs.TOPTAL_DEVBOT_TOKEN }}" >> $GITHUB_ENV
          echo 'GCR_ACCOUNT_KEY<<EOF' >> $GITHUB_ENV
          echo '${{ steps.parse_secrets.outputs.GCR_ACCOUNT_KEY }}' >> $GITHUB_ENV
          echo 'EOF' >> $GITHUB_ENV

      - id: branch
        uses: xt0rted/pull-request-comment-branch@v2.0.0

      - name: Specify branch
        id: get-branch
        run: |
          echo "branch=${{ steps.branch.outputs.head_ref }}" >> $GITHUB_OUTPUT
          echo "sha=${{ steps.branch.outputs.head_sha }}" >> $GITHUB_OUTPUT

      - name: Checkout
        uses: actions/checkout@v3
        with:
          ref: ${{ steps.get-branch.outputs.branch }}

      - uses: toptal/actions/deploy-storybook@main
        with:
          jenkins_url: ${{ steps.parse_secrets.outputs.JENKINS_URL }}
          jenkins_user: ${{ steps.parse_secrets.outputs.TOPTAL_TRIGGERBOT_USERNAME }}
          jenkins_token: ${{ steps.parse_secrets.outputs.TOPTAL_TRIGGERBOT_TOKEN }}
          jenkins_client_id: ${{ steps.parse_secrets.outputs.JENKINS_CLIENT_ID }}
          jenkins_sa_credentials: ${{ steps.parse_secrets.outputs.JENKINS_SA_CREDENTIALS }}
          sha: ${{ steps.get-branch.outputs.sha }}
          environment: temploy
          env-file: .env.temploy
