Skip to content

Commit

Permalink
[wip][CI] Automatically publish to AUR
Browse files Browse the repository at this point in the history
  • Loading branch information
mxmlnkn committed Dec 16, 2023
1 parent 86740c6 commit 06b7d81
Showing 1 changed file with 44 additions and 2 deletions.
46 changes: 44 additions & 2 deletions .github/workflows/publish-rapidgzip.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@ name: Publish Rapidgzip to PyPI

on:
push:
tags:
- 'rapidgzip-v*.*.*'
branches:
- 'oldmaster'

jobs:
Deploy-Wheels:
if: false
runs-on: ${{ matrix.os }}

strategy:
Expand Down Expand Up @@ -194,3 +195,44 @@ jobs:
python3 -m build -o . --sdist ..
mv rapidgzip-*.tar* src.tar
conda build --token "$ANACONDA_TOKEN" .
Deploy-AUR:
runs-on: ubuntu-latest
container:
image: archlinux
steps:
- name: Set Up Non-Root User # Because makepkg is an ass and forbids root from using it
run: |
groupadd sudo
useradd -m -G sudo user
echo '%sudo ALL=(ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
- name: Install System Dependencies
run: |
pacman -Syu --noconfirm
pacman -Sy --noconfirm base-devel git python python-pip python-setuptools rhash
- name: Clone Repository
run: |
chmod a+rwx .
git clone https://aur.archlinux.org/python-rapidgzip.git .
# For testing whether the update script works
git checkout HEAD~
- name: Update PKGBUILD
run: |
# Annoyingly, --no-deps is not sufficient and building the wheels would still be triggered even
# just for downloading the source tarball! But, --no-build-isolation seems to avoid that:
# https://discuss.python.org/t/pip-download-just-the-source-packages-no-building-no-metadata-etc/4651/7
pip download --no-binary --no-deps --no-build-isolation :all: rapidgzip
pkgver=$( echo rapidgzip-*.tar.gz | sed -E 's|rapidgzip-([0-9.]*).*[.]tar.gz|\1|' )
blake2b=$( python3 -c 'import hashlib, sys; h=hashlib.blake2b(digest_size=256 // 8); h.update(open(sys.argv[1], "rb").read()); print(h.digest().hex())' rapidgzip-*.tar.gz )
# Update PKGBUILD
sed -i "s|pkgver=.*|pkgver=$pkgver|" PKBUILD
sed -i "s|sha256sums=.*|sha256sums=($( rhash --sha256 rapidgzip-*.tar.gz ))|" PKBUILD
sed -i "s|(.*pythonhosted.org/packages)/[0-9][0-9]/[0-9][0-9]/[0-9]*/(.*)|\1/${blake2b:0:2}/${blake2b:2:2}/${blake2b:4}\2" PKGBUILD
- name: Test PKGBUILD
run: |
su user -c 'makepkg -s --noconfirm'
su user -c 'makepkg --noconfirm --install python-rapidgzip-*.tar.zst'

0 comments on commit 06b7d81

Please sign in to comment.