name: Release Please

on:
  push:
    branches:
      - main

jobs:
  release-please:
    runs-on: ubuntu-latest
    outputs:
      RELEASE_CREATED: ${{ steps.release.outputs.release_created }}
      TAG_NAME: ${{ steps.release.outputs.tag_name }}
      SHA: ${{ steps.release.outputs.sha }}
    steps:
      - uses: google-github-actions/release-please-action@v3
        id: release
        with:
          token: ${{ secrets.botGitHubToken }}
          release-type: python
          command: manifest
          config-file: release-please/config.json
          manifest-file: release-please/manifest.json
      - uses: actions/checkout@v2
        with:
          token: ${{ secrets.botGitHubToken }}
      - name: Import GPG Key
        uses: crazy-max/ghaction-import-gpg@v4
        with:
          gpg_private_key: ${{ secrets.botGPGPrivateKey }}
          passphrase: ${{ secrets.botGPGPassphrase }}
          git_user_signingkey: true
          git_commit_gpgsign: true
          git_tag_gpgsign: true
      - name: Tag major and minor versions
        if: ${{ steps.release.outputs.release_created }}
        run: |
          git tag -d v${{ steps.release.outputs.major }} || true
          git tag -d v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} || true
          git push origin :v${{ steps.release.outputs.major }} || true
          git push origin :v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} || true
          git tag -a v${{ steps.release.outputs.major }} -m "Release v${{ steps.release.outputs.major }} pointing to tag ${{ steps.release.outputs.tag_name }}"
          git tag -a v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} -m "Release v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }} pointing to tag ${{ steps.release.outputs.tag_name }}"
          git push origin v${{ steps.release.outputs.major }}
          git push origin v${{ steps.release.outputs.major }}.${{ steps.release.outputs.minor }}
