# ---------------------------------------------------------------
# Workflow File : pub-AUR-chsrc-and-chsrc-bin.yml
# File Authors  : Terrasse <terrasse@qq.com>
# Contributors  : Nul None <nul@none.org>
#               |
# Created On    : <2024-08-29>
# Last Modified : <2025-03-18>
#
# Publish the 2 packages to AUR when a new release is created:
#   1. chsrc
#   2. chsrc-bin
#
# Note: only normal version tags like 'v1.2.3' will be published
# ---------------------------------------------------------------

name: Publish 'chsrc' and 'chsrc-bin' to AUR
on:
  release:
    types: [ released ]

jobs:
  publish:
    runs-on: ubuntu-latest

    steps:
    - name: Get the release tag
      id: get_tag
      run: |
        echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
    - name: Validate version tag
      run: |
        if [[ ! $tag =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
          echo "Abnormal version tag: $tag"
          echo "valid=0" >> $GITHUB_ENV
        else
          version=$(echo $tag | sed 's/^v//')
          echo "version=$version" >> $GITHUB_ENV
          echo "valid=1" >> $GITHUB_ENV
        fi
    - name: Fetch PKGBUILD
      run: |
        wget https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD\?h\=chsrc-bin -O ./PKGBUILD_bin
    - name: Update PKGBUILD
      run: |
        sed -i "s/pkgver=.*/pkgver=$version/" PKGBUILD_bin
    - name: Publish chsrc-bin to AUR
      if: env.valid == '1'
      uses: KSXGitHub/github-actions-deploy-aur@v4.1.1
      with:
        pkgname: chsrc-bin
        pkgbuild: ./PKGBUILD_bin
        updpkgsums: true
        test: true # Check that PKGBUILD could be built, and update pkgver
        commit_username: ${{ secrets.AUR_USERNAME }}
        commit_email: ${{ secrets.AUR_EMAIL }}
        ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
        commit_message: "github-action-auto-publish v${{ env.version }}"
    - name: Fetch PKGBUILD
      run: |
        wget https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD\?h\=chsrc -O ./PKGBUILD
    - name: Update PKGBUILD
      run: |
        sed -i "s/pkgver=.*/pkgver=$version/" PKGBUILD
    - name: Publish chsrc to AUR
      if: env.valid == '1'
      uses: KSXGitHub/github-actions-deploy-aur@v4.1.1
      with:
        pkgname: chsrc
        pkgbuild: ./PKGBUILD
        updpkgsums: true
        test: true # Check that PKGBUILD could be built, and update pkgver
        commit_username: ${{ secrets.AUR_USERNAME }}
        commit_email: ${{ secrets.AUR_EMAIL }}
        ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
        commit_message: "github-action-auto-publish v${{ env.version }}"
