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
|
name: Kernel Update Check
on:
schedule:
- cron: '0 8 1,15 * *'
workflow_dispatch:
jobs:
check-update:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check CachyOS kernel version
id: check
run: |
# Aktualis CachyOS kernel verzio lekerdezese
LATEST=$(curl -s "https://api.github.com/repos/CachyOS/linux/tags" \
| python3 -c "
import sys, json, re
tags = json.load(sys.stdin)
versions = []
for t in tags:
m = re.match(r'cachyos-(\d+\.\d+)\.(\d+)-(\d+)$', t['name'])
if m:
versions.append((t['name'], m.group(1), m.group(2), m.group(3)))
if versions:
versions.sort(key=lambda x: (list(map(int, x[1].split('.'))), int(x[2]), int(x[3])), reverse=True)
latest = versions[0]
print(f'TAG={latest[0]}')
print(f'MAJOR={latest[1]}')
print(f'MINOR={latest[2]}')
print(f'TAGREL={latest[3]}')
")
echo "$LATEST" >> $GITHUB_OUTPUT
echo "Latest CachyOS: $LATEST"
- name: Read current version from PKGBUILD
id: current
run: |
MAJOR=$(grep '^_major=' linux-raveos/PKGBUILD | cut -d= -f2)
MINOR=$(grep '^_minor=' linux-raveos/PKGBUILD | cut -d= -f2)
TAGREL=$(grep '^_tagrel=' linux-raveos/PKGBUILD | cut -d= -f2)
echo "MAJOR=$MAJOR" >> $GITHUB_OUTPUT
echo "MINOR=$MINOR" >> $GITHUB_OUTPUT
echo "TAGREL=$TAGREL" >> $GITHUB_OUTPUT
echo "Current: $MAJOR.$MINOR-$TAGREL"
- name: Check if update needed
id: needsupdate
run: |
NEW="${{ steps.check.outputs.MAJOR }}.${{ steps.check.outputs.MINOR }}-${{ steps.check.outputs.TAGREL }}"
CUR="${{ steps.current.outputs.MAJOR }}.${{ steps.current.outputs.MINOR }}-${{ steps.current.outputs.TAGREL }}"
if [ "$NEW" != "$CUR" ]; then
echo "UPDATE=yes" >> $GITHUB_OUTPUT
echo "Frissites szukseges: $CUR -> $NEW"
else
echo "UPDATE=no" >> $GITHUB_OUTPUT
echo "Nincs frissites, aktualis: $CUR"
fi
- name: Check if PR already exists
id: prcheck
if: steps.needsupdate.outputs.UPDATE == 'yes'
run: |
BRANCH="update/kernel-${{ steps.check.outputs.MAJOR }}.${{ steps.check.outputs.MINOR }}-${{ steps.check.outputs.TAGREL }}"
EXISTS=$(curl -s \
-H "Authorization: token ${{ secrets.FORGEJO_TOKEN }}" \
"https://git.rp1.hu/api/v1/repos/${{ github.repository }}/pulls?state=open&head=$BRANCH" \
| python3 -c "import sys,json; pulls=json.load(sys.stdin); print('yes' if pulls else 'no')")
echo "EXISTS=$EXISTS" >> $GITHUB_OUTPUT
echo "PR letezik: $EXISTS"
- name: Create update branch
if: steps.needsupdate.outputs.UPDATE == 'yes' && steps.prcheck.outputs.EXISTS == 'no'
run: |
git config user.name "RaveOS Bot"
git config user.email "bot@raveos.hu"
BRANCH="update/kernel-${{ steps.check.outputs.MAJOR }}.${{ steps.check.outputs.MINOR }}-${{ steps.check.outputs.TAGREL }}"
git checkout -b "$BRANCH"
# PKGBUILD frissitese
sed -i "s/^_major=.*/_major=${{ steps.check.outputs.MAJOR }}/" linux-raveos/PKGBUILD
sed -i "s/^_minor=.*/_minor=${{ steps.check.outputs.MINOR }}/" linux-raveos/PKGBUILD
sed -i "s/^_tagrel=.*/_tagrel=${{ steps.check.outputs.TAGREL }}/" linux-raveos/PKGBUILD
# CachyOS config letoltese
SRCNAME="cachyos-${{ steps.check.outputs.MAJOR }}.${{ steps.check.outputs.MINOR }}-${{ steps.check.outputs.TAGREL }}"
curl -sL "https://raw.githubusercontent.com/CachyOS/linux-cachyos/master/linux-cachyos/config" \
-o linux-raveos/config.new
# ZRAM es NTSYNC builtin megtartasa
sed -i 's/^CONFIG_ZRAM=m$/CONFIG_ZRAM=y/' linux-raveos/config.new
sed -i 's/^CONFIG_NTSYNC=m$/CONFIG_NTSYNC=y/' linux-raveos/config.new
mv linux-raveos/config.new linux-raveos/config
git add linux-raveos/PKGBUILD linux-raveos/config
git commit -m "update: linux-raveos kernel ${{ steps.check.outputs.MAJOR }}.${{ steps.check.outputs.MINOR }}-${{ steps.check.outputs.TAGREL }}"
git remote set-url origin "https://bot:${{ secrets.FORGEJO_TOKEN }}@git.rp1.hu/RaveOS/RaveOS-PKGBUILD.git"
git push origin "$BRANCH"
- name: Open Pull Request
if: steps.needsupdate.outputs.UPDATE == 'yes' && steps.prcheck.outputs.EXISTS == 'no'
run: |
BRANCH="update/kernel-${{ steps.check.outputs.MAJOR }}.${{ steps.check.outputs.MINOR }}-${{ steps.check.outputs.TAGREL }}"
NEW_VER="${{ steps.check.outputs.MAJOR }}.${{ steps.check.outputs.MINOR }}-${{ steps.check.outputs.TAGREL }}"
CUR_VER="${{ steps.current.outputs.MAJOR }}.${{ steps.current.outputs.MINOR }}-${{ steps.current.outputs.TAGREL }}"
curl -s -X POST \
-H "Authorization: token ${{ secrets.FORGEJO_TOKEN }}" \
-H "Content-Type: application/json" \
"https://git.rp1.hu/api/v1/repos/${{ github.repository }}/pulls" \
-d "{
\"title\": \"kernel update: $CUR_VER -> $NEW_VER\",
\"head\": \"$BRANCH\",
\"base\": \"main\",
\"body\": \"Automatikus kernel frissites.\n\n- Regi verzio: \`$CUR_VER\`\n- Uj verzio: \`$NEW_VER\`\n\nEllenorizd a config diff-et merge elott.\"
}"
echo "PR megnyitva: $BRANCH -> main"
|