-
-
Notifications
You must be signed in to change notification settings - Fork 0
93 lines (92 loc) · 4.49 KB
/
repo-updt.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
on:
workflow_dispatch: ~
push:
branches:
- "master"
paths:
- ".github/workflows/repo-updt.yml"
schedule:
- cron: "0 */8 * * *"
jobs:
updtpkg:
container: archlinux:base-devel
runs-on: ubuntu-latest
steps:
- run: |-
uname -a
mkdir ~/.ssh -p && cd /etc/pacman.d
echo -e 'Server = https://mirrors.dotsrc.org/archlinux/$repo/os/$arch' >> mirrorlist
echo -e 'Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch' >> mirrorlist
tac mirrorlist > mirrorlist~ && mv mirrorlist{~,} && cd /etc
sed -r 's/^(COMPRESSZST)=.*/\1=(zstdmt -18 -M1024M --long)/' -i makepkg.conf
sed -r 's/^#(MAKEFLAGS)=.*/\1="-j`nproc`"/' -i makepkg.conf
sed -r 's/^#(PACKAGER)=.*/\1="Seele <[email protected]>"/' -i makepkg.conf
pacman-key --init
- run: |-
pacman -Syu --noconfirm git pacman-contrib
sed -r 's/\b(EUID)\s*==\s*0\b/\1 < -0/' -i /bin/makepkg
makepkg --version
- run: pacman -S --noconfirm apt debian-archive-keyring jq openssh
- uses: actions/checkout@v4
with:
persist-credentials: true
token: ${{ secrets.PAT }}
- run: |-
patch -d / -lp1 < makepkg.patch
sed 's/Retries "0"/Retries "3"/' -i /etc/apt/apt.conf
echo 'deb https://deb.debian.org/debian unstable main' >> /etc/apt/sources.list
echo 'deb https://deb.debian.org/debian testing main' >> /etc/apt/sources.list
echo 'deb https://deb.debian.org/debian stable main' >> /etc/apt/sources.list
echo '${{ secrets.SSH_PUB }}' > ~/.ssh/id_ecdsa.pub
echo '${{ secrets.SSH_KEY }}' > ~/.ssh/id_ecdsa
chmod 400 ~/.ssh/** && apt update 2> /dev/null
- run: |-
mkdir .github/packages/iraf-bin -p
cd -- .github/packages/iraf-bin
apt list -a iraf iraf-noao 2> /dev/null || true
apt-cache show iraf/sid iraf-noao/sid | tee package.txt
deb=$(cat package.txt | grep -Pom1 '^Version: \K\S+')
pkg=${deb/~rc/rc} && cd - && cd iraf-bin
ver=$(cat PKGBUILD | grep -Po '^pkgver=\K\S+')
rel=$(cat PKGBUILD | grep -Po '^pkgrel=\K\S+')
[[ ${ver} != ${pkg/[+-]*/} ]] && rel=1 && ver="${pkg/[+-]*/}" ||
[[ ${deb} == $(cat PKGBUILD | grep -Po '^debver=\K\S+') ]] || ((rel++))
sed -re "s/^(debver)=.+/\1=$deb/" -i PKGBUILD
sed -re "s/^(pkgver)=.+/\1=$ver/" -i PKGBUILD
sed -re "s/^(pkgrel)=.+/\1=$rel/" -i PKGBUILD
updpkgsums && makepkg --printsrcinfo > .SRCINFO
- run: |-
mkdir .github/packages/xgterm-bin -p
cd -- .github/packages/xgterm-bin
apt list -a xgterm 2> /dev/null || true
apt-cache show xgterm/sid | tee package.txt
deb=$(cat package.txt | grep -Pom1 '^Version: \K\S+')
pkg=${deb/~rc/rc} && cd - && cd xgterm-bin
ver=$(cat PKGBUILD | grep -Po '^pkgver=\K\S+')
rel=$(cat PKGBUILD | grep -Po '^pkgrel=\K\S+')
[[ ${ver} != ${pkg/[+-]*/} ]] && rel=1 && ver="${pkg/[+-]*/}" ||
[[ ${deb} == $(cat PKGBUILD | grep -Po '^debver=\K\S+') ]] || ((rel++))
sed -re "s/^(debver)=.+/\1=$deb/" -i PKGBUILD
sed -re "s/^(pkgver)=.+/\1=$ver/" -i PKGBUILD
sed -re "s/^(pkgrel)=.+/\1=$rel/" -i PKGBUILD
updpkgsums && makepkg --printsrcinfo > .SRCINFO
- run: |-
git version
git config --global commit.gpgsign true
git config --global gpg.format ssh
git config --global init.defaultbranch master
git config --global log.date iso
git config --global pull.rebase true
git config --global safe.directory "*"
git config --global user.email [email protected]
git config --global user.name Seele
git config --global user.signingkey ~/.ssh/id_ecdsa.pub
git add --all && git commit --allow-empty-message -m $'Update' || true
git pull -ftp && git push |& tee /tmp/push
git rev-parse HEAD | tee /tmp/head
sha=`cat /tmp/head` u=${{ github.api_url }}/repos/${{ github.repository }}/commits/$sha/comments
grep $'Everything up-to-date' /tmp/push -ax && exit
echo @Heptazhou > /tmp/md
echo '```s' >> /tmp/md && git show --stat -w >> /tmp/md
echo '```' >> /tmp/md && cat /tmp/md | jq -Rs $'{ body: . }' > /tmp/md.json
echo $u && curl -LX POST -H 'Authorization: token ${{ secrets.PAT }}' -d @/tmp/md.json $u