---
name: Version Auto Bump

on:
  push:
    tags:
      - v**

jobs:
  setup:
    name: "Setup"
    runs-on: ubuntu-22.04
    outputs:
      version_number: ${{ steps.version.outputs.new-version }}
    steps:
      - name: Checkout Branch
        uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579

      - name: Calculate bumped version
        id: version
        env:
          RELEASE_TAG: ${{ github.ref }}
        run: |
          CURR_MAJOR=$(echo $RELEASE_TAG | sed -r 's/refs\/tags\/v([0-9]{4}\.[0-9]{1,2})\.([0-9]{1,2})/\1/')
          CURR_PATCH=$(echo $RELEASE_TAG | sed -r 's/refs\/tags\/v([0-9]{4}\.[0-9]{1,2})\.([0-9]{1,2})/\2/')
          echo "Current Major: $CURR_MAJOR"
          echo "Current Patch: $CURR_PATCH"

          NEW_PATCH=$((CURR_PATCH+1))
          NEW_VER=$CURR_MAJOR.$NEW_PATCH
          echo "New Version: $NEW_VER"
          echo "new-version=$NEW_VER" >> $GITHUB_OUTPUT

  trigger_version_bump:
    name: "Trigger version bump workflow"
    runs-on: ubuntu-22.04
    needs:
      - setup
    steps:
      - name: Login to Azure
        uses: Azure/login@ec3c14589bd3e9312b3cc8c41e6860e258df9010
        with:
          creds: ${{ secrets.AZURE_PROD_KV_CREDENTIALS }}

      - name: Retrieve secrets
        id: retrieve-secrets
        uses: bitwarden/gh-actions/get-keyvault-secrets@c3b3285993151c5af47cefcb3b9134c28ab479af
        with:
          keyvault: "bitwarden-prod-kv"
          secrets: "github-pat-bitwarden-devops-bot-repo-scope"

      - name: Call GitHub API to trigger workflow bump
        env:
          TOKEN: ${{ steps.retrieve-secrets.outputs.github-pat-bitwarden-devops-bot-repo-scope }}
          VERSION: ${{ needs.setup.outputs.version_number}}
        run: |
          JSON_STRING=$(printf '{"ref":"master", "inputs": { "version_number":"%s"}}' "$VERSION")
          curl \
            -X POST \
            -i -u bitwarden-devops-bot:$TOKEN \
            -H "Accept: application/vnd.github.v3+json" \
            https://api.github.com/repos/bitwarden/mobile/actions/workflows/version-bump.yml/dispatches \
            -d $JSON_STRING
