turn-up-arch/.github/workflows/publish-aur.yml

67 lines
2.0 KiB
YAML

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
run: |
docker run --rm \
-v "$PWD:/pkg" \
-w /pkg \
archlinux:latest \
bash -c "useradd -m builder && chown -R builder /pkg && su builder -c '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