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