Add GitHub Action to publish to AUR on version tag

main
Sean Doran 2026-02-27 11:41:51 -05:00
parent 44d4df4171
commit 2443986ff6
No known key found for this signature in database
GPG Key ID: A9D7D25CD95E8579
1 changed files with 63 additions and 0 deletions

63
.github/workflows/publish-aur.yml vendored Normal file
View File

@ -0,0 +1,63 @@
name: Publish to AUR
on:
push:
tags:
- 'v*'
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Extract version from tag
id: version
run: echo "version=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
- name: Compute sha256 of GitHub tarball
id: sha256
run: |
URL="https://github.com/${{ github.repository }}/archive/refs/tags/${GITHUB_REF_NAME}.tar.gz"
SHA=$(curl -sL "$URL" | sha256sum | awk '{print $1}')
echo "sha256=$SHA" >> "$GITHUB_OUTPUT"
- name: Update PKGBUILD version and checksum
run: |
VERSION="${{ steps.version.outputs.version }}"
SHA="${{ steps.sha256.outputs.sha256 }}"
sed -i "s/^pkgver=.*/pkgver=${VERSION}/" PKGBUILD
sed -i "s/^pkgrel=.*/pkgrel=1/" PKGBUILD
sed -i "s/^sha256sums=.*/sha256sums=('${SHA}')/" PKGBUILD
- name: Generate .SRCINFO
uses: docker://archlinux:latest
with:
args: bash -c "pacman -Sy --noconfirm pacman && makepkg --printsrcinfo > .SRCINFO"
- name: Set up SSH for AUR
run: |
mkdir -p ~/.ssh
echo "${{ secrets.AUR_SSH_KEY }}" > ~/.ssh/aur
chmod 600 ~/.ssh/aur
ssh-keyscan aur.archlinux.org >> ~/.ssh/known_hosts
cat >> ~/.ssh/config <<EOF
Host aur.archlinux.org
IdentityFile ~/.ssh/aur
User aur
EOF
- name: Clone AUR repo
run: git clone ssh://aur@aur.archlinux.org/${{ github.event.repository.name }}.git /tmp/aur-pkg
- name: Copy files and push to AUR
run: |
cp PKGBUILD .SRCINFO /tmp/aur-pkg/
cd /tmp/aur-pkg
git config user.name "github-actions"
git config user.email "github-actions@github.com"
git add PKGBUILD .SRCINFO
git commit -m "Update to ${{ github.ref_name }}"
git push