blob: 7dab4bfff923fe06675dc1a77c08477d8171bbcb (
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
|
name: Build linux-raveos kernel
on:
push:
branches:
- main
paths:
- 'linux-raveos/**'
workflow_dispatch:
concurrency:
group: raveos-kernel-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 clang llvm lld bc binutils cpio gettext \
libelf openssl pahole perl python rust rust-bindgen \
rust-src xxhash xz zlib zstd
- name: Clone core repo
run: |
set -euo pipefail
rm -rf /tmp/raveos-core-repo
git clone --depth 1 git@git.rp1.hu:RaveOS/raveos-core-repo.git /tmp/raveos-core-repo
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: Check if already built
id: check
run: |
set -euo pipefail
CORE="/tmp/raveos-core-repo/x86_64"
PKGVER=$(grep '^pkgver=' linux-raveos/PKGBUILD | cut -d= -f2)
PKGREL=$(grep '^pkgrel=' linux-raveos/PKGBUILD | cut -d= -f2)
FULLVER="${PKGVER}-${PKGREL}"
echo "PKGVER=$PKGVER" >> $GITHUB_OUTPUT
echo "PKGREL=$PKGREL" >> $GITHUB_OUTPUT
if ls "$CORE"/linux-cachyos-${PKGVER}-${PKGREL}-*.pkg.tar.zst 2>/dev/null | grep -q .; then
echo "SKIP=yes" >> $GITHUB_OUTPUT
echo "linux-cachyos ${FULLVER} mar bent van -> skip"
else
echo "SKIP=no" >> $GITHUB_OUTPUT
echo "linux-cachyos ${FULLVER} build indul..."
fi
- name: Build linux-cachyos
if: steps.check.outputs.SKIP == 'no'
run: |
set -euo pipefail
cd linux-raveos
rm -f *.pkg.tar.zst || true
makepkg -s --noconfirm
cp -v linux-cachyos-*.pkg.tar.zst /tmp/builtpkgs/
- name: Sign built packages
if: steps.check.outputs.SKIP == 'no'
run: |
set -euo pipefail
export GNUPGHOME=/tmp/raveos-gnupg
for pkg in /tmp/builtpkgs/*.pkg.tar.zst; do
gpg --batch --yes --pinentry-mode loopback \
--passphrase "${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}" \
--local-user 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
--detach-sign "$pkg"
echo "Alairva: $(basename "$pkg")"
done
- name: Publish to core repo
if: steps.check.outputs.SKIP == 'no'
run: |
set -euo pipefail
CORE="/tmp/raveos-core-repo/x86_64"
mkdir -p "$CORE"
BUILT=$(ls /tmp/builtpkgs/*.pkg.tar.zst 2>/dev/null || true)
if [ -z "$BUILT" ]; then
echo "Nincs csomag -> kihagyva"
exit 0
fi
cd /tmp/raveos-core-repo
git config user.name "Forgejo Actions"
git config user.email "actions@forgejo.local"
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
cp -v "$pkg" "$CORE/"
[ -f "$pkg.sig" ] && cp -v "$pkg.sig" "$CORE/"
done
export GNUPGHOME=/tmp/raveos-gnupg
repo-add -s -k 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
"$CORE/raveos-core-repo.db.tar.gz" "$CORE"/linux-cachyos-[^h]*.pkg.tar.zst
repo-add -s -k 25C7668F1235F5664F037671BDB2A9CE6EBFF113 \
"$CORE/raveos-core-repo.db.tar.gz" "$CORE"/linux-cachyos-headers-*.pkg.tar.zst
git add -A
git commit -m "kernel: linux-cachyos ${{ steps.check.outputs.PKGVER }}-${{ steps.check.outputs.PKGREL }}"
git push origin main
TAG="vrepo-$(date +%Y%m%d-%H%M%S)"
git tag -a "$TAG" -m "linux-raveos ${GITHUB_SHA:0:7}"
git push origin "$TAG"
echo "::notice title=Kernel published::linux-raveos ${{ steps.check.outputs.PKGVER }}-${{ steps.check.outputs.PKGREL }}"
- 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
sudo rm -rf linux-raveos/src linux-raveos/pkg || true
df -h
|