---
name: Version Bump

on:
  workflow_dispatch:
    inputs:
      version_number:
        description: "New Version"
        required: true

jobs:
  bump_version:
    name: "Create version_bump_${{ github.event.inputs.version_number }} branch"
    runs-on: ubuntu-20.04
    steps:
      - name: Checkout Branch
        uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
      
      - name: Login to Azure - Prod Subscription
        uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.7
        with:
          creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}

      - name: Retrieve secrets
        id: retrieve-secrets
        uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
        with:
          keyvault: "bitwarden-ci"
          secrets: "github-gpg-private-key, github-gpg-private-key-passphrase"

      - name: Import GPG key
        uses: crazy-max/ghaction-import-gpg@72b6676b71ab476b77e676928516f6982eef7a41 # v5.3.0
        with:
          gpg_private_key: ${{ steps.retrieve-secrets.outputs.github-gpg-private-key }}
          passphrase: ${{ steps.retrieve-secrets.outputs.github-gpg-private-key-passphrase }}
          git_user_signingkey: true
          git_commit_gpgsign: true      

      - name: Create Version Branch
        run: |
          git switch -c version_bump_${{ github.event.inputs.version_number }}
          git push -u origin version_bump_${{ github.event.inputs.version_number }}

      - name: Checkout Version Branch
        uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
        with:
          ref: version_bump_${{ github.event.inputs.version_number }}

      - name: Bump Version - Package
        uses: bitwarden/gh-actions/version-bump@72594be690a4e7bfa87b1402b2aedc75acdbff12
        with:
          version: ${{ github.event.inputs.version_number }}
          file_path: "./src/package.json"

      - name: Commit files
        run: |
          git config --local user.email "106330231+bitwarden-devops-bot@users.noreply.github.com"
          git config --local user.name "bitwarden-devops-bot"
          git commit -m "Bumped version to ${{ github.event.inputs.version_number }}" -a

      - name: Push changes
        run: git push -u origin version_bump_${{ github.event.inputs.version_number }}

      - name: Create Version PR
        env:
          PR_BRANCH: "version_bump_${{ github.event.inputs.version_number }}"
          GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
          BASE_BRANCH: master
          TITLE: "Bump version to ${{ github.event.inputs.version_number }}"
        run: |
          gh pr create --title "$TITLE" \
            --base "$BASE" \
            --head "$PR_BRANCH" \
            --label "version update" \
            --label "automated pr" \
            --body "
              ## Type of change
              - [ ] Bug fix
              - [ ] New feature development
              - [ ] Tech debt (refactoring, code cleanup, dependency upgrades, etc)
              - [ ] Build/deploy pipeline (DevOps)
              - [X] Other
              
              ## Objective
              Automated version bump to ${{ github.event.inputs.version_number }}"
