name: Publish to AUR

on:
  # Step "Publish binary AUR package" needs the binaries built by the following
  # workflow, so we wait for it to complete.
  workflow_run:
    workflows: ["Publish release files for CD native and non-cd-native environments"]
    types:
      - completed
  workflow_dispatch:
    inputs:
      # Example: 16.0.4
      version:
        description: "The version of this manual release, e.g., 16.0.4"
        required: false
        type: string

permissions:
  contents: read

jobs:
  aur-publish:
    runs-on: ubuntu-latest
    steps:
      - name: Determine version
        id: determine_version
        run: |
          if [ -n "${{ github.event.inputs.version }}" ]; then
            echo "version=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
          else
            # GITHUB_REF should be something like "v16.0.4", remove the prefix v here
            echo "version=${GITHUB_REF#v}" >> $GITHUB_OUTPUT
          fi

      - name: Publish source AUR package
        uses: varabyte/update-aur-package@572e31b1972fa289a27b1926c06a489eb89c7fd7
        with:
          version: ${{ steps.determine_version.outputs.version }}
          package_name: topgrade
          commit_username: "Thomas Schönauer"
          commit_email: t.schoenauer@hgs-wt.at
          ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}

      - name: Publish binary AUR package
        uses: varabyte/update-aur-package@572e31b1972fa289a27b1926c06a489eb89c7fd7
        with:
          version: ${{ steps.determine_version.outputs.version }}
          package_name: topgrade-bin
          commit_username: "Thomas Schönauer"
          commit_email: t.schoenauer@hgs-wt.at
          ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
