diff --git a/.github/workflows/publish-aur.yml b/.github/workflows/publish-aur.yml new file mode 100644 index 0000000..a79d900 --- /dev/null +++ b/.github/workflows/publish-aur.yml @@ -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 <