archlinux-aur/.forgejo/workflows/packages.yaml

431 lines
No EOL
21 KiB
YAML

name: Update packages
on:
schedule:
- cron: '0 12 * * *'
timezone: Europe/Berlin
workflow_dispatch:
jobs:
# https://aur.archlinux.org/packages/cephadm/
cephadm:
runs-on: debian-stable
env:
PACKAGE_NAME: cephadm
container:
image: git.sb20.xengi.de/xengi/archlinux-aur:latest
credentials:
username: xengi
password: ${{ secrets.REGISTRY_TOKEN }}
steps:
- name: Install dependencies
run: yay -Sy --needed --noconfirm --noprogressbar curl jq namcap openssh git
- name: Get versions
id: versions
run: |
ceph_major=$(
curl -fsSL https://docs.ceph.com/en/latest/releases/ |
grep -oE 'latest [0-9]+\.[0-9]+\.[0-9]+' |
head -n1 |
cut -d' ' -f2 |
cut -d. -f1
)
echo upstream=$(curl -sL -H 'Accept: application/vnd.github.v3+json' https://api.github.com/repos/ceph/ceph/tags | jq -r '[.[].name | select(. | startswith("v${ceph_major}"))][0]' | cut -c 2-) >> "$FORGEJO_OUTPUT"
echo aur=$(curl -sL 'https://aur.archlinux.org/rpc/?v=5&type=info&arg[]=${{ env.PACKAGE_NAME }}' | jq -r '.results[0].Version | split("-")[0]') >> "$FORGEJO_OUTPUT"
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.AUR_SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan aur.archlinux.org >> ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
- name: Clone AUR repository
run: git clone ssh://aur@aur.archlinux.org/${{ env.PACKAGE_NAME }}.git
- name: Update package
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
run: |
sed -i "s/^pkgver=.*/pkgver=${{ steps.versions.outputs.upstream }}/" PKGBUILD
if [ "${{ steps.versions.outputs.upstream }}" != "${{ steps.versions.outputs.aur }}" ]; then sed -i 's/^pkgrel=.*/pkgrel=1/' PKGBUILD; fi
updpkgsums
makepkg --printsrcinfo > .SRCINFO
- name: Test package
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
run: |
makepkg -csi --noconfirm --noprogressbar
namcap -i PKGBUILD
namcap -i ${{ env.PACKAGE_NAME }}-*.pkg.tar.zst
sudo cephadm --help
- name: Upload new package
if: ${{ steps.versions.outputs.upstream != steps.versions.outputs.aur }}
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
run: |
git config user.name "update-bot"
git config user.email "email@ricardo.band"
git commit -m "bumped to version ${{ steps.versions.outputs.upstream }}" .SRCINFO PKGBUILD
git push
curl -s \
--form-string "token=${{ secrets.PUSHOVER_API_TOKEN }}" \
--form-string "user=${{ secrets.PUSHOVER_USER_KEY }}" \
--form-string "priority=-2" \
--form-string "sound=hey_listen" \
--form-string "timestamp=$(date +%s)" \
--form-string "title=AUR package ${{ env.PACKAGE_NAME }}" \
--form-string "message=${{ env.PACKAGE_NAME }} updated from ${{ steps.versions.outputs.aur }} from ${{ steps.versions.outputs.upstream }}" \
--form-string "url_title=Forgejo Pipeline" \
--form-string "url=${{ env.FORGEJO_SERVER_URL }}/${{ env.FORGEJO_REPOSITORY }}/actions?workflow=packages.yaml&actor=0&status=0" \
https://api.pushover.net/1/messages.json
- name: Send notification
if: ${{ failure() }}
run: |
curl -s \
--form-string "token=${{ secrets.PUSHOVER_API_TOKEN }}" \
--form-string "user=${{ secrets.PUSHOVER_USER_KEY }}" \
--form-string "priority=0" \
--form-string "sound=hey_listen" \
--form-string "timestamp=$(date +%s)" \
--form-string "title=AUR package ${{ env.PACKAGE_NAME }} failure" \
--form-string "message=Updating ${{ env.PACKAGE_NAME }} from ${{ steps.versions.outputs.aur }} to ${{ steps.versions.outputs.upstream }} failed." \
--form-string "url_title=Forgejo Pipeline" \
--form-string "url=${{ env.FORGEJO_SERVER_URL }}/${{ env.FORGEJO_REPOSITORY }}/actions?workflow=packages.yaml&actor=0&status=0" \
https://api.pushover.net/1/messages.json
# https://aur.archlinux.org/packages/cephadm-git/
cephadm-git:
runs-on: debian-stable
env:
PACKAGE_NAME: cephadm-git
container:
image: git.sb20.xengi.de/xengi/archlinux-aur:latest
credentials:
username: xengi
password: ${{ secrets.REGISTRY_TOKEN }}
steps:
- name: Install dependencies
run: yay -Sy --needed --noconfirm --noprogressbar namcap openssh git
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.AUR_SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan aur.archlinux.org >> ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
- name: Clone AUR repository
run: git clone ssh://aur@aur.archlinux.org/${{ env.PACKAGE_NAME }}.git
- name: Update package
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
id: update
run: |
updpkgsums
makepkg --printsrcinfo > .SRCINFO
if git status | grep -q 'modified:.*PKGBUILD'; then
echo 'modified=yes' >> $FORGEJO_OUTPUT
fi
- name: Test package
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
run: |
makepkg -csi --noconfirm --noprogressbar
namcap -i PKGBUILD
namcap -i ${{ env.PACKAGE_NAME }}-*.pkg.tar.zst
sudo cephadm --help
- name: Upload new package
if: ${{ steps.update.outputs.modified }} == "yes"
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
run: |
git config user.name "update-bot"
git config user.email "email@ricardo.band"
git commit -m "bumped git commit" .SRCINFO PKGBUILD
git push
curl -s \
--form-string "token=${{ secrets.PUSHOVER_API_TOKEN }}" \
--form-string "user=${{ secrets.PUSHOVER_USER_KEY }}" \
--form-string "priority=-2" \
--form-string "sound=hey_listen" \
--form-string "timestamp=$(date +%s)" \
--form-string "title=AUR package ${{ env.PACKAGE_NAME }}" \
--form-string "message=${{ env.PACKAGE_NAME }} updated git commit" \
--form-string "url_title=Forgejo Pipeline" \
--form-string "url=${{ env.FORGEJO_SERVER_URL }}/${{ env.FORGEJO_REPOSITORY }}/actions?workflow=packages.yaml&actor=0&status=0" \
https://api.pushover.net/1/messages.json
- name: Send notification
if: ${{ failure() }}
run: |
curl -s \
--form-string "token=${{ secrets.PUSHOVER_API_TOKEN }}" \
--form-string "user=${{ secrets.PUSHOVER_USER_KEY }}" \
--form-string "priority=0" \
--form-string "sound=hey_listen" \
--form-string "timestamp=$(date +%s)" \
--form-string "title=AUR package ${{ env.PACKAGE_NAME }} failure" \
--form-string "message=Updating ${{ env.PACKAGE_NAME }} git commit failed." \
--form-string "url_title=Forgejo Pipeline" \
--form-string "url=${{ env.FORGEJO_SERVER_URL }}/${{ env.FORGEJO_REPOSITORY }}/actions?workflow=packages.yaml&actor=0&status=0" \
https://api.pushover.net/1/messages.json
# https://aur.archlinux.org/packages/virtualfish/
virtualfish:
runs-on: debian-stable
env:
PACKAGE_NAME: virtualfish
container:
image: git.sb20.xengi.de/xengi/archlinux-aur:latest
credentials:
username: xengi
password: ${{ secrets.REGISTRY_TOKEN }}
steps:
- name: Install dependencies
run: yay -Sy --needed --noconfirm --noprogressbar curl jq namcap openssh git
- name: Get versions
id: versions
run: |
echo upstream=$(curl -sL "https://api.github.com/repos/justinmayer/${{ env.PACKAGE_NAME }}/releases/latest" | jq -r '.tag_name') >> "$FORGEJO_OUTPUT"
echo aur=$(curl -sL 'https://aur.archlinux.org/rpc/?v=5&type=info&arg[]=${{ env.PACKAGE_NAME }}' | jq -r '.results[0].Version | split("-")[0]') >> "$FORGEJO_OUTPUT"
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.AUR_SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan aur.archlinux.org >> ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
- name: Clone AUR repository
run: git clone ssh://aur@aur.archlinux.org/${{ env.PACKAGE_NAME }}.git
- name: Update package
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
run: |
sed -i "s/^pkgver=.*/pkgver=${{ steps.versions.outputs.upstream }}/" PKGBUILD
if [ "${{ steps.versions.outputs.upstream }}" != "${{ steps.versions.outputs.aur }}" ]; then sed -i 's/^pkgrel=.*/pkgrel=1/' PKGBUILD; fi
updpkgsums
makepkg --printsrcinfo > .SRCINFO
- name: Test package
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
run: |
makepkg -csi --noconfirm --noprogressbar
namcap -i PKGBUILD
namcap -i ${{ env.PACKAGE_NAME }}-*.pkg.tar.zst
mkdir -p ~/.virtualenvs
fish -c 'vf install'
fish -c 'vf --help'
- name: Upload new package
if: ${{ steps.versions.outputs.upstream != steps.versions.outputs.aur }}
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
run: |
git config user.name "update-bot"
git config user.email "email@ricardo.band"
git commit -m "bumped to version ${{ steps.versions.outputs.upstream }}" .SRCINFO PKGBUILD
git push
curl -s \
--form-string "token=${{ secrets.PUSHOVER_API_TOKEN }}" \
--form-string "user=${{ secrets.PUSHOVER_USER_KEY }}" \
--form-string "priority=-2" \
--form-string "sound=hey_listen" \
--form-string "timestamp=$(date +%s)" \
--form-string "title=AUR package ${{ env.PACKAGE_NAME }}" \
--form-string "message=${{ env.PACKAGE_NAME }} updated from ${{ steps.versions.outputs.aur }} from ${{ steps.versions.outputs.upstream }}" \
--form-string "url_title=Forgejo Pipeline" \
--form-string "url=${{ env.FORGEJO_SERVER_URL }}/${{ env.FORGEJO_REPOSITORY }}/actions?workflow=packages.yaml&actor=0&status=0" \
https://api.pushover.net/1/messages.json
- name: Send notification
if: ${{ failure() }}
run: |
curl -s \
--form-string "token=${{ secrets.PUSHOVER_API_TOKEN }}" \
--form-string "user=${{ secrets.PUSHOVER_USER_KEY }}" \
--form-string "priority=0" \
--form-string "sound=hey_listen" \
--form-string "timestamp=$(date +%s)" \
--form-string "title=AUR package ${{ env.PACKAGE_NAME }} failure" \
--form-string "message=Updating ${{ env.PACKAGE_NAME }} from ${{ steps.versions.outputs.aur }} to ${{ steps.versions.outputs.upstream }} failed." \
--form-string "url_title=Forgejo Pipeline" \
--form-string "url=${{ env.FORGEJO_SERVER_URL }}/${{ env.FORGEJO_REPOSITORY }}/actions?workflow=packages.yaml&actor=0&status=0" \
https://api.pushover.net/1/messages.json
# https://aur.archlinux.org/packages/projen/
projen:
runs-on: debian-stable
env:
PACKAGE_NAME: projen
container:
image: git.sb20.xengi.de/xengi/archlinux-aur:latest
credentials:
username: xengi
password: ${{ secrets.REGISTRY_TOKEN }}
steps:
- name: Install dependencies
run: yay -Sy --needed --noconfirm --noprogressbar curl jq namcap openssh git
- name: Get versions
id: versions
run: |
echo upstream=$(curl -sL https://registry.npmjs.org/${{ env.PACKAGE_NAME }} | jq -r '."dist-tags".latest') >> "$FORGEJO_OUTPUT"
echo aur=$(curl -sL 'https://aur.archlinux.org/rpc/?v=5&type=info&arg[]=${{ env.PACKAGE_NAME }}' | jq -r '.results[0].Version | split("-")[0]') >> "$FORGEJO_OUTPUT"
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.AUR_SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan aur.archlinux.org >> ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
- name: Clone AUR repository
run: git clone ssh://aur@aur.archlinux.org/${{ env.PACKAGE_NAME }}.git
- name: Update package
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
run: |
sed -i "s/^pkgver=.*/pkgver=${{ steps.versions.outputs.upstream }}/" PKGBUILD
if [ "${{ steps.versions.outputs.upstream }}" != "${{ steps.versions.outputs.aur }}" ]; then sed -i 's/^pkgrel=.*/pkgrel=1/' PKGBUILD; fi
updpkgsums
makepkg --printsrcinfo > .SRCINFO
- name: Test package
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
run: |
makepkg -csi --noconfirm --noprogressbar
namcap -i PKGBUILD
namcap -i ${{ env.PACKAGE_NAME }}-*.pkg.tar.zst
projen --help
- name: Upload new package
if: ${{ steps.versions.outputs.upstream != steps.versions.outputs.aur }}
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
run: |
git config user.name "update-bot"
git config user.email "email@ricardo.band"
git commit -m "bumped to version ${{ steps.versions.outputs.upstream }}" .SRCINFO PKGBUILD
git push
curl -s \
--form-string "token=${{ secrets.PUSHOVER_API_TOKEN }}" \
--form-string "user=${{ secrets.PUSHOVER_USER_KEY }}" \
--form-string "priority=-2" \
--form-string "sound=hey_listen" \
--form-string "timestamp=$(date +%s)" \
--form-string "title=AUR package ${{ env.PACKAGE_NAME }}" \
--form-string "message=${{ env.PACKAGE_NAME }} updated from ${{ steps.versions.outputs.aur }} from ${{ steps.versions.outputs.upstream }}" \
--form-string "url_title=Forgejo Pipeline" \
--form-string "url=${{ env.FORGEJO_SERVER_URL }}/${{ env.FORGEJO_REPOSITORY }}/actions?workflow=packages.yaml&actor=0&status=0" \
https://api.pushover.net/1/messages.json
- name: Send notification
if: ${{ failure() }}
run: |
curl -s \
--form-string "token=${{ secrets.PUSHOVER_API_TOKEN }}" \
--form-string "user=${{ secrets.PUSHOVER_USER_KEY }}" \
--form-string "priority=0" \
--form-string "sound=hey_listen" \
--form-string "timestamp=$(date +%s)" \
--form-string "title=AUR package ${{ env.PACKAGE_NAME }} failure" \
--form-string "message=Updating ${{ env.PACKAGE_NAME }} from ${{ steps.versions.outputs.aur }} to ${{ steps.versions.outputs.upstream }} failed." \
--form-string "url_title=Forgejo Pipeline" \
--form-string "url=${{ env.FORGEJO_SERVER_URL }}/${{ env.FORGEJO_REPOSITORY }}/actions?workflow=packages.yaml&actor=0&status=0" \
https://api.pushover.net/1/messages.json
# https://aur.archlinux.org/packages/rqlite/
rqlite:
runs-on: debian-stable
env:
PACKAGE_NAME: rqlite
container:
image: git.sb20.xengi.de/xengi/archlinux-aur:latest
credentials:
username: xengi
password: ${{ secrets.REGISTRY_TOKEN }}
steps:
- name: Install dependencies
run: yay -Sy --needed --noconfirm --noprogressbar curl jq namcap openssh git
- name: Get versions
id: versions
run: |
echo upstream=$(curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/${{ env.PACKAGE_NAME }}/${{ env.PACKAGE_NAME }}/releases/latest | jq -r ".tag_name | \"\(.[1:])\"") >> "$FORGEJO_OUTPUT"
echo aur=$(curl -sL 'https://aur.archlinux.org/rpc/?v=5&type=info&arg[]=${{ env.PACKAGE_NAME }}' | jq -r '.results[0].Version | split("-")[0]') >> "$FORGEJO_OUTPUT"
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.AUR_SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan aur.archlinux.org >> ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
- name: Clone AUR repository
run: git clone ssh://aur@aur.archlinux.org/${{ env.PACKAGE_NAME }}.git
- name: Update package
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
run: |
sed -i "s/^pkgver=.*/pkgver=${{ steps.versions.outputs.upstream }}/" PKGBUILD
if [ "${{ steps.versions.outputs.upstream }}" != "${{ steps.versions.outputs.aur }}" ]; then sed -i 's/^pkgrel=.*/pkgrel=1/' PKGBUILD; fi
updpkgsums
makepkg --printsrcinfo > .SRCINFO
- name: Test package
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
run: |
makepkg -csi --noconfirm --noprogressbar
namcap -i PKGBUILD
namcap -i ${{ env.PACKAGE_NAME }}-*.pkg.tar.zst
rqlited --help
rqlite --help
- name: Upload new package
if: ${{ steps.versions.outputs.upstream != steps.versions.outputs.aur }}
working-directory: /workspace/xengi/archlinux-aur/${{ env.PACKAGE_NAME }}
run: |
git config user.name "update-bot"
git config user.email "email@ricardo.band"
git commit -m "bumped to version ${{ steps.versions.outputs.upstream }}" .SRCINFO PKGBUILD
git push
curl -s \
--form-string "token=${{ secrets.PUSHOVER_API_TOKEN }}" \
--form-string "user=${{ secrets.PUSHOVER_USER_KEY }}" \
--form-string "priority=-2" \
--form-string "sound=hey_listen" \
--form-string "timestamp=$(date +%s)" \
--form-string "title=AUR package ${{ env.PACKAGE_NAME }}" \
--form-string "message=${{ env.PACKAGE_NAME }} updated from ${{ steps.versions.outputs.aur }} from ${{ steps.versions.outputs.upstream }}" \
--form-string "url_title=Forgejo Pipeline" \
--form-string "url=${{ env.FORGEJO_SERVER_URL }}/${{ env.FORGEJO_REPOSITORY }}/actions?workflow=packages.yaml&actor=0&status=0" \
https://api.pushover.net/1/messages.json
- name: Send notification
if: ${{ failure() }}
run: |
curl -s \
--form-string "token=${{ secrets.PUSHOVER_API_TOKEN }}" \
--form-string "user=${{ secrets.PUSHOVER_USER_KEY }}" \
--form-string "priority=0" \
--form-string "sound=hey_listen" \
--form-string "timestamp=$(date +%s)" \
--form-string "title=AUR package ${{ env.PACKAGE_NAME }} failure" \
--form-string "message=Updating ${{ env.PACKAGE_NAME }} from ${{ steps.versions.outputs.aur }} to ${{ steps.versions.outputs.upstream }} failed." \
--form-string "url_title=Forgejo Pipeline" \
--form-string "url=${{ env.FORGEJO_SERVER_URL }}/${{ env.FORGEJO_REPOSITORY }}/actions?workflow=packages.yaml&actor=0&status=0" \
https://api.pushover.net/1/messages.json
update-readme:
runs-on: alpine-latest
steps:
- name: Install dependencies
run: apk add --upgrade --update-cache curl jq git
- name: Clone repository
run: git clone "https://x-access-token:${FORGEJO_TOKEN}@${FORGEJO_SERVER_URL#https://}/${FORGEJO_REPOSITORY}.git" .
- name: Generate package table
run: |
packages=$(curl -sL 'https://aur.archlinux.org/rpc/v5/search/XenGi?by=maintainer' | jq -r '.results[].Name' | sort -f)
table=$(
echo '| Package | Version | Last modified | Popularity | Votes |'
echo '| --- | --- | --- | --- | --- |'
printf '%s\n' "$packages" | while IFS= read -r package; do
echo "| ${package} | ![AUR Version](https://img.shields.io/aur/version/${package}?style=flat-square) | ![AUR Last Modified](https://img.shields.io/aur/last-modified/${package}?style=flat-square) | ![AUR Popularity](https://img.shields.io/aur/popularity/${package}?style=flat-square) | ![AUR Votes](https://img.shields.io/aur/votes/${package}?style=flat-square) |"
done
)
awk -v table="$table" '
/<!-- AUR-PACKAGES-START -->/ {
print
print table
in_table = 1
next
}
/<!-- AUR-PACKAGES-END -->/ {
in_table = 0
print
next
}
!in_table {
print
}
' "README.md" > "README.md.new"
mv "README.md.new" "README.md"
- name: Commit updated README
run: |
git config user.name "forgejo-actions"
git config user.email "forgejo-actions@yuka"
git add README.md
if git diff --cached --quiet; then
echo "README.md has not changed"
exit 0
fi
git commit -m "Update AUR package list"
git push