-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[wip][CI] Automatically publish to AUR
- Loading branch information
Showing
1 changed file
with
55 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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: | ||
|
@@ -194,3 +195,55 @@ 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 | ||
env: | ||
RAPIDGZIP_AUR_SSH: ${{ secrets.RAPIDGZIP_AUR_SSH }} | ||
run: | | ||
chmod a+rwx . | ||
chown user . | ||
echo "$RAPIDGZIP_AUR_SSH" > ~/.ssh/id_ed25519 | ||
su user -c 'git clone ssh://[email protected]/python-rapidgzip.git .' | ||
# For testing whether the update script works | ||
su user -c '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 :all: --no-deps --no-build-isolation 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|" PKGBUILD | ||
sed -i "s|sha256sums=.*|sha256sums=(\"$( rhash -p"%x{sha-256}" rapidgzip-*.tar.gz )\")|" PKGBUILD | ||
sed -i -E "s|(.*pythonhosted.org/packages)/[0-9a-f]{2}/[0-9a-f]{2}/[0-9a-f]*/(.*)|\1/${blake2b:0:2}/${blake2b:2:2}/${blake2b:4}/\2|" PKGBUILD | ||
su user -c 'makepkg --printsrcinfo > .SRCINFO' | ||
su user -c 'git add -f PKGBUILD .SRCINFO' | ||
su user -c 'git config --local user.email "[email protected]"' | ||
su user -c 'git config --local user.name "Maximilian Knespel"' | ||
su user -c "git commit -m 'Update to $pkgver'" | ||
su user -c 'git status' | ||
su user -c 'git show' | ||
- name: Test PKGBUILD | ||
run: | | ||
su user -c 'makepkg -s --noconfirm' | ||
su user -c 'makepkg --noconfirm --install python-rapidgzip-*.tar.zst' |