blob: 88780527636b86f2ab323b4927166ebe85a78b11 (
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
|
name: Kernel Update Check
on:
schedule:
- cron: '0 8 1,15 * *'
workflow_dispatch:
jobs:
check-update:
runs-on: iso-builder
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check CachyOS kernel version
id: check
run: |
set -euo pipefail
PKGBUILD=$(curl -fsSL --retry 3 \
"https://raw.githubusercontent.com/CachyOS/linux-cachyos/master/linux-cachyos/PKGBUILD")
MAJOR=$(echo "$PKGBUILD" | grep '^_major=' | cut -d= -f2)
MINOR=$(echo "$PKGBUILD" | grep '^_minor=' | cut -d= -f2)
TAGREL=$(echo "$PKGBUILD" | grep '^_tagrel=' | cut -d= -f2)
if [ -z "$MAJOR" ] || [ -z "$MINOR" ] || [ -z "$TAGREL" ]; then
echo "HIBA: Nem sikerult a CachyOS verziot lekerdezni"
exit 1
fi
echo "MAJOR=$MAJOR" >> $GITHUB_OUTPUT
echo "MINOR=$MINOR" >> $GITHUB_OUTPUT
echo "TAGREL=$TAGREL" >> $GITHUB_OUTPUT
echo "Legfrissebb CachyOS: ${MAJOR}.${MINOR}-${TAGREL}"
- name: Read current version
id: current
run: |
set -euo pipefail
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 "Jelenlegi: ${MAJOR}.${MINOR}-${TAGREL}"
- name: Frissites szukseges?
id: needsupdate
run: |
set -euo pipefail
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: $CUR -> $NEW"
else
echo "UPDATE=no" >> $GITHUB_OUTPUT
echo "Aktualis, nincs frissites: $CUR"
fi
- name: PR mar letezik?
id: prcheck
if: steps.needsupdate.outputs.UPDATE == 'yes'
run: |
set -euo pipefail
BRANCH="update/kernel-${{ steps.check.outputs.MAJOR }}.${{ steps.check.outputs.MINOR }}-${{ steps.check.outputs.TAGREL }}"
EXISTS=$(curl -fsSL \
-H "Authorization: token ${{ secrets.FORGEJO_TOKEN }}" \
"https://git.rp1.hu/api/v1/repos/${{ github.repository }}/pulls?state=open" \
| python3 -c "
import sys, json
pulls = json.load(sys.stdin)
branch = '${BRANCH}'
found = any(p.get('head', {}).get('label', '').endswith(branch) for p in pulls)
print('yes' if found else 'no')
")
echo "EXISTS=$EXISTS" >> $GITHUB_OUTPUT
echo "PR letezik: $EXISTS"
- name: Update branch letrehozasa
if: steps.needsupdate.outputs.UPDATE == 'yes' && steps.prcheck.outputs.EXISTS == 'no'
run: |
set -euo pipefail
BRANCH="update/kernel-${{ steps.check.outputs.MAJOR }}.${{ steps.check.outputs.MINOR }}-${{ steps.check.outputs.TAGREL }}"
git config user.name "RaveOS Bot"
git config user.email "bot@raveos.hu"
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
# Uj CachyOS config letoltese
curl -fsSL --retry 3 \
"https://raw.githubusercontent.com/CachyOS/linux-cachyos/master/linux-cachyos/config" \
-o linux-raveos/config
# RaveOS modositasok visszarakasa a configba
sed -i 's/^CONFIG_ZRAM=m$/CONFIG_ZRAM=y/' linux-raveos/config
sed -i 's/^CONFIG_NTSYNC=m$/CONFIG_NTSYNC=y/' 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: PR nyitasa
if: steps.needsupdate.outputs.UPDATE == 'yes' && steps.prcheck.outputs.EXISTS == 'no'
run: |
set -euo pipefail
BRANCH="update/kernel-${{ steps.check.outputs.MAJOR }}.${{ steps.check.outputs.MINOR }}-${{ steps.check.outputs.TAGREL }}"
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 }}"
curl -fsSL -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} -> ${NEW}\",
\"head\": \"${BRANCH}\",
\"base\": \"main\",
\"body\": \"Automatikus kernel frissites.\n\n- Regi verzio: \`${CUR}\`\n- Uj verzio: \`${NEW}\`\n\nEllenorizd a config diff-et merge elott. Merge utan automatikusan elindul a build.\"
}"
echo "PR megnyitva: $BRANCH -> main"
|