sax 1.0.0

A simple but smart archiving and extraction tool.
name: Publish development AUR package

on:
  push:
    branches:
      - main
    paths:
      - "packaging/aur/sax-git/**"
      - ".github/workflows/publish-aur-git.yml"
  workflow_dispatch:

permissions:
  contents: read

jobs:
  publish:
    name: Publish sax-git
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v6
        with:
          fetch-depth: 0

      - name: Configure AUR SSH
        env:
          AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
        run: |
          test -n "$AUR_SSH_PRIVATE_KEY"
          mkdir -p ~/.ssh
          chmod 700 ~/.ssh
          printf '%s\n' "$AUR_SSH_PRIVATE_KEY" > ~/.ssh/aur
          chmod 600 ~/.ssh/aur
          ssh-keyscan aur.archlinux.org >> ~/.ssh/known_hosts
          cat >> ~/.ssh/config <<'EOF'
          Host aur.archlinux.org
            User aur
            IdentityFile ~/.ssh/aur
            IdentitiesOnly yes
          EOF

      - name: Prepare development package
        run: |
          cargo_version="$(cargo metadata --no-deps --format-version 1 | jq -r '.packages[0].version')"
          pkgver="${cargo_version}.r$(git rev-list --count HEAD).g$(git rev-parse --short=7 HEAD)"

          git clone ssh://aur@aur.archlinux.org/sax-git.git aur-repo
          cp packaging/aur/sax-git/PKGBUILD aur-repo/PKGBUILD
          sed -i "s/^pkgver=.*/pkgver=$pkgver/" aur-repo/PKGBUILD

      - name: Generate AUR metadata
        run: |
          docker run --rm \
            -e HOST_UID="$(id -u)" \
            -e HOST_GID="$(id -g)" \
            -v "$PWD/aur-repo:/pkg" \
            -w /pkg \
            archlinux:base-devel \
            bash -lc 'useradd -m builder && chown -R builder:builder /pkg && su builder -c "cd /pkg && makepkg --printsrcinfo > .SRCINFO" && chown -R "$HOST_UID:$HOST_GID" /pkg'

      - name: Push AUR package
        run: |
          git -C aur-repo config user.name "github-actions[bot]"
          git -C aur-repo config user.email "41898282+github-actions[bot]@users.noreply.github.com"
          git -C aur-repo add PKGBUILD .SRCINFO

          if git -C aur-repo diff --cached --quiet; then
            echo "AUR package is already up to date."
            exit 0
          fi

          git -C aur-repo commit -m "Update sax-git packaging"
          git -C aur-repo push