blob: 90ae03892ffd0964ed6691c2840e5ac5c9e7b6ac (
plain)
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
name: Build gnome-raveos 50 pin
on:
push:
branches:
- main
paths:
- 'gnome-raveos/**'
workflow_dispatch:
concurrency:
group: raveos-gnome50-build
cancel-in-progress: true
jobs:
build:
runs-on: iso-builder
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install build dependencies
run: |
set -euo pipefail
sudo pacman -S --needed --noconfirm base-devel zstd rsync pacman-contrib
- name: Fetch core repo via rsync
run: |
set -euo pipefail
RSYNC_SSH="ssh -p 2222 -i $HOME/.ssh/vps_backup_key -o StrictHostKeyChecking=no"
rm -rf /tmp/raveos-core-repo
mkdir -p /tmp/raveos-core-repo/x86_64
rsync -az -e "$RSYNC_SSH" \
root@10.66.66.1:/root/docker/repo/repo/x86_64/ /tmp/raveos-core-repo/x86_64/ || true
mkdir -p /tmp/builtpkgs
- name: Import GPG signing key
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
rm -rf "$GNUPGHOME"
mkdir -m 700 "$GNUPGHOME"
echo "${{ secrets.GPG_PRIVATE_KEY }}" | base64 -d | gpg --batch --import
- name: Build gnome-raveos 50 pin stack
run: |
set -euo pipefail
ORDER=(
gnome-desktop
gnome-desktop-common
gnome-desktop-4
gsettings-desktop-schemas
gsettings-system-schemas
gnome-keybindings
gnome-keyring
mutter
gnome-shell
gnome-session
gdm
gnome-settings-daemon
gnome-control-center
nautilus
gnome-console
gnome-disk-utility
gnome-system-monitor
eog
gedit
gnome-calculator
baobab
gnome-shell-extensions
gvfs
gvfs-mtp
gvfs-nfs
gvfs-smb
xdg-desktop-portal-gnome
)
mkdir -p /tmp/builtpkgs
CORE="/tmp/raveos-core-repo/x86_64"
for pkg in "${ORDER[@]}"; do
dir="gnome-raveos/$pkg"
[ -d "$dir" ] || continue
PKGVER=$(grep '^pkgver=' "$dir/PKGBUILD" | head -1 | cut -d= -f2 | tr -d "'\"")
PKGREL=$(grep '^pkgrel=' "$dir/PKGBUILD" | head -1 | cut -d= -f2 | tr -d "'\"")
echo "=== Checking $pkg (${PKGVER}-${PKGREL}) ==="
if ls "$CORE"/${pkg}-2:${PKGVER}-${PKGREL}-*.pkg.tar.zst 2>/dev/null | grep -q .; then
echo "$pkg already built -> skipping"
continue
fi
echo "=== Building $pkg ==="
cd "$dir"
rm -f *.pkg.tar.zst || true
makepkg -s --noconfirm -f
for built in "$pkg"-*.pkg.tar.zst; do
[ -f "$built" ] || continue
cp -v "$built" /tmp/builtpkgs/
sudo pacman -U --noconfirm "$built" || true
done
cd - >/dev/null
done
- name: Sign built packages
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
for pkg in /tmp/builtpkgs/*.pkg.tar.zst; do
[ -f "$pkg" ] || continue
gpg --batch --yes --pinentry-mode loopback \
--passphrase "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" \
--local-user 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
--detach-sign --no-armor "$pkg"
done
- name: Update repo database and sync to VPS
run: |
set -euo pipefail
BUILT=$(ls /tmp/builtpkgs/*.pkg.tar.zst 2>/dev/null || true)
if [ -z "$BUILT" ]; then
echo "Nincs új csomag -> kihagyva"
exit 0
fi
CORE="/tmp/raveos-core-repo/x86_64"
for pkg in $BUILT; do
PKGFILE=$(basename "$pkg")
PKGNAME=$(echo "$PKGFILE" | sed 's/-[0-9][^-]*-[^-]*-[^-]*\.pkg\.tar\.zst$//')
rm -f "$CORE/${PKGNAME}-"*.pkg.tar.zst* 2>/dev/null || true
rm -f "$CORE/${PKGNAME}.pkg.tar.zst"* 2>/dev/null || true
cp -v "$pkg" "$CORE/"
[ -f "$pkg.sig" ] && cp -v "$pkg.sig" "$CORE/"
done
export GNUPGHOME=/tmp/raveos-gnupg
cd "$CORE"
ALLPKGS=$(ls *.pkg.tar.zst)
repo-add raveos-core-repo.db.tar.xz $ALLPKGS
for f in raveos-core-repo.db.tar.xz raveos-core-repo.files.tar.xz; do
gpg --batch --yes --pinentry-mode loopback \
--passphrase "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" \
--local-user 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
--detach-sign --no-armor -o "$f.sig" "$f"
done
ln -sf raveos-core-repo.db.tar.xz.sig raveos-core-repo.db.sig
ln -sf raveos-core-repo.files.tar.xz.sig raveos-core-repo.files.sig
RSYNC_SSH="ssh -p 2222 -i $HOME/.ssh/vps_backup_key -o StrictHostKeyChecking=no"
rsync -az --delete -e "$RSYNC_SSH" \
"$CORE/" root@10.66.66.1:/root/docker/repo/repo/x86_64/
echo "::notice title=GNOME 50 pin published::All packages updated in repo"
- name: Cleanup
if: always()
run: |
gpgconf --homedir /tmp/raveos-gnupg --kill gpg-agent || true
sudo rm -rf /tmp/raveos-gnupg || true
sudo rm -rf /tmp/builtpkgs || true
sudo rm -rf /tmp/raveos-core-repo || true
df -h
|