Skip to content

Commit fe90a27

Browse files
committed
fix: resolve YAML heredoc indentation and ZIP_NAME scope syntax errors
1 parent 1bb0f78 commit fe90a27

1 file changed

Lines changed: 42 additions & 69 deletions

File tree

.github/workflows/build-kernel.yml

Lines changed: 42 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
sudo apt-get install -y --no-install-recommends \
4343
bc bison build-essential ca-certificates cpio flex \
4444
git kmod libelf-dev libssl-dev lz4 python3 \
45-
zip wget curl sed binutils-aarch64-linux-gnu \
45+
zip unzip wget curl sed binutils-aarch64-linux-gnu \
4646
crossbuild-essential-arm64 gcc-aarch64-linux-gnu \
4747
gcc-arm-linux-gnueabi clang lld llvm
4848
@@ -83,7 +83,7 @@ jobs:
8383
run: |
8484
cd android-kernel
8585
KSU_TAG="${{ steps.ksu_info.outputs.ksu_version }}"
86-
echo "Integrating KernelSU $KSU_TAG into kernel ${{ steps.kver.outputs.version }}..."
86+
echo "Integrating KernelSU $KSU_TAG ..."
8787
curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s "$KSU_TAG"
8888
echo "--- KernelSU Makefile header ---"
8989
head -5 KernelSU/kernel/Makefile 2>/dev/null || head -5 drivers/kernelsu/Makefile 2>/dev/null
@@ -94,11 +94,12 @@ jobs:
9494
echo "Downloading ZyCromerZ Clang 17..."
9595
wget -q --show-progress \
9696
https://github.com/ZyCromerZ/Clang/releases/download/17.0.0-20230725-release/Clang-17.0.0-x86_64.tar.gz \
97-
-O /tmp/clang.tar.gz && \
98-
tar -xzf /tmp/clang.tar.gz -C $HOME/toolchain/clang/ && \
99-
rm /tmp/clang.tar.gz && \
100-
echo "Clang ready: $(clang --version | head -1)" || {
101-
echo "Download failed — falling back to system clang"
97+
-O /tmp/clang.tar.gz \
98+
&& tar -xzf /tmp/clang.tar.gz -C $HOME/toolchain/clang/ \
99+
&& rm /tmp/clang.tar.gz \
100+
&& echo "Clang ready" \
101+
|| {
102+
echo "Download failed - falling back to system clang"
102103
mkdir -p $HOME/toolchain/clang/bin
103104
for b in clang clang++ ld.lld llvm-ar llvm-nm llvm-objcopy llvm-objdump llvm-strip; do
104105
[ -f "/usr/bin/$b" ] && ln -sf "/usr/bin/$b" "$HOME/toolchain/clang/bin/$b"
@@ -118,50 +119,39 @@ jobs:
118119
sed -i 's/PVRSRVDevicePreClockSpeedChange(ui32RGXDevIdx,/PVRSRVDevicePreClockSpeedChange(MTKGetRGXDevNode(),/g' "$TARGET"
119120
echo "GPU fix applied."
120121
else
121-
echo "mtk_mfgsys.c not found skipping GPU fix."
122+
echo "mtk_mfgsys.c not found - skipping GPU fix."
122123
fi
123124
124125
- name: Configure kernel
125126
run: |
126127
cd android-kernel
127128
export PATH=$HOME/toolchain/clang/bin:$PATH
128129
129-
# Auto-detect defconfig
130-
DEFCONFIG=$(find arch/arm64/configs -name "*a04s*" -o -name "*a04*defconfig" 2>/dev/null | head -1 | xargs basename 2>/dev/null)
131-
if [ -z "$DEFCONFIG" ]; then
132-
DEFCONFIG="a04_defconfig"
133-
fi
130+
DEFCONFIG=$(find arch/arm64/configs -name "*a04s*" -o -name "*a04*defconfig" 2>/dev/null | head -1 | xargs -r basename)
131+
[ -z "$DEFCONFIG" ] && DEFCONFIG="a04_defconfig"
134132
echo "Using defconfig: $DEFCONFIG"
135133
echo "DEFCONFIG=$DEFCONFIG" >> $GITHUB_ENV
136134
137-
make O=out ARCH=arm64 \
138-
CC=clang \
135+
make O=out ARCH=arm64 CC=clang \
139136
CLANG_TRIPLE=aarch64-linux-gnu- \
140137
CROSS_COMPILE=aarch64-linux-gnu- \
141138
"$DEFCONFIG"
142139
143-
# Silence Werror so upstream warnings don't abort the build
144140
sed -i 's/CONFIG_WERROR=y/CONFIG_WERROR=n/g' out/.config
145141
146-
# KernelSU — enable KSU + required dependencies for 4.x non-GKI
147142
scripts/config --file out/.config \
148143
-e CONFIG_KSU \
149144
-e CONFIG_KPROBES \
150145
-e CONFIG_HAVE_KPROBES \
151146
-e CONFIG_KPROBE_EVENTS \
152147
-e CONFIG_OVERLAY_FS \
153-
-e CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE
154-
155-
# Disable KSU_DEBUG in production builds
156-
scripts/config --file out/.config \
148+
-e CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE \
157149
-d CONFIG_KSU_DEBUG
158150
159-
# Embed KSU version into kernel local version string
160151
scripts/config --file out/.config \
161152
--set-str CONFIG_LOCALVERSION "-KSU-${{ steps.ksu_info.outputs.ksu_version }}" \
162153
--disable CONFIG_LOCALVERSION_AUTO
163154
164-
# Strip debug info to reduce Image size and speed up build
165155
scripts/config --file out/.config \
166156
--disable CONFIG_DEBUG_INFO \
167157
--disable CONFIG_DEBUG_INFO_SPLIT \
@@ -172,9 +162,7 @@ jobs:
172162
--enable CONFIG_STRIP_ASM_SYMS \
173163
--enable CONFIG_CC_OPTIMIZE_FOR_SIZE
174164
175-
# Accept all new config prompts with defaults
176-
make O=out ARCH=arm64 \
177-
CC=clang \
165+
make O=out ARCH=arm64 CC=clang \
178166
CLANG_TRIPLE=aarch64-linux-gnu- \
179167
CROSS_COMPILE=aarch64-linux-gnu- \
180168
olddefconfig
@@ -201,49 +189,29 @@ jobs:
201189
Image dtbs 2>&1 | tee $GITHUB_WORKSPACE/compile.log
202190
203191
if [ ! -f out/arch/arm64/boot/Image ]; then
204-
echo "::error::Build failed kernel Image not found!"
192+
echo "::error::Build failed - kernel Image not found!"
205193
exit 1
206194
fi
207-
208195
echo "Build successful! Image size: $(du -h out/arch/arm64/boot/Image | cut -f1)"
209196
210197
- name: Collect DTBs
211198
run: |
212199
cd android-kernel
213-
# Concatenate all DTBs into a single dtb file for AnyKernel3
214-
find out/arch/arm64/boot/dts -name "*.dtb" 2>/dev/null | sort | \
215-
xargs cat > out/arch/arm64/boot/dtb.img 2>/dev/null || true
216-
200+
find out/arch/arm64/boot/dts -name "*.dtb" 2>/dev/null | sort | xargs cat > out/arch/arm64/boot/dtb.img 2>/dev/null || true
217201
if [ -s out/arch/arm64/boot/dtb.img ]; then
218202
echo "DTB collected: $(du -h out/arch/arm64/boot/dtb.img | cut -f1)"
219203
echo "HAS_DTB=true" >> $GITHUB_ENV
220204
else
221-
echo "No DTBs found skipping DTB packaging."
205+
echo "No DTBs found - skipping DTB packaging."
222206
echo "HAS_DTB=false" >> $GITHUB_ENV
223207
fi
224208
225-
- name: Package with AnyKernel3
209+
- name: Write anykernel.sh
226210
run: |
227-
git clone --depth=1 https://github.com/osm0sis/AnyKernel3 AnyKernel3
228-
cd AnyKernel3
229-
rm -rf .git .github *.md
230-
231-
# Copy kernel Image
232-
cp $GITHUB_WORKSPACE/android-kernel/out/arch/arm64/boot/Image ./
233-
234-
# Copy DTB if present
235-
if [ "${{ env.HAS_DTB }}" = "true" ]; then
236-
mkdir -p dtb
237-
cp $GITHUB_WORKSPACE/android-kernel/out/arch/arm64/boot/dtb.img ./dtb.img
238-
echo "DTB included in zip."
239-
fi
240-
241-
# Write a clean anykernel.sh — no indentation inside heredoc
242-
cat > anykernel.sh << 'EOF'
211+
mkdir -p $GITHUB_WORKSPACE/ak3out
212+
cat > $GITHUB_WORKSPACE/ak3out/anykernel.sh << 'AKEOF'
243213
# AnyKernel3 Ramdisk Mod Script
244214
# Samsung Galaxy A04s (SM-A047F) + KernelSU
245-
246-
## AnyKernel setup
247215
properties() { '
248216
kernel.string=Samsung A04s KernelSU Kernel
249217
do.devicecheck=1
@@ -259,26 +227,31 @@ device.name5=a047x
259227
supported.versions=12-14
260228
supported.patchlevels=
261229
'; }
262-
263-
# shell variables
264230
block=auto;
265231
is_slot_device=0;
266232
ramdisk_compression=auto;
267233
patch_vbmeta_flag=auto;
268-
269-
## AnyKernel methods (DO NOT CHANGE)
270234
. tools/ak3-core.sh;
271-
272-
## AnyKernel install
273235
split_boot;
274-
275-
# Flash DTB if present
276236
if [ -f "$AKHOME/dtb.img" ]; then
277237
flash_dtb;
278238
fi
279-
280239
flash_boot;
281-
EOF
240+
AKEOF
241+
242+
- name: Package with AnyKernel3
243+
run: |
244+
git clone --depth=1 https://github.com/osm0sis/AnyKernel3 AnyKernel3
245+
cd AnyKernel3
246+
rm -rf .git .github *.md
247+
248+
cp $GITHUB_WORKSPACE/android-kernel/out/arch/arm64/boot/Image ./
249+
cp $GITHUB_WORKSPACE/ak3out/anykernel.sh ./anykernel.sh
250+
251+
if [ "${{ env.HAS_DTB }}" = "true" ]; then
252+
cp $GITHUB_WORKSPACE/android-kernel/out/arch/arm64/boot/dtb.img ./dtb.img
253+
echo "DTB included in zip."
254+
fi
282255
283256
BUILD_DATE=$(date +%Y%m%d-%H%M)
284257
KSU_VER="${{ steps.ksu_info.outputs.ksu_version }}"
@@ -290,12 +263,12 @@ EOF
290263

291264
- name: Verify zip contents
292265
run: |
266+
ZIP_NAME="${{ env.ZIP_NAME }}"
293267
echo "=== ZIP contents ==="
294-
unzip -l "$ZIP_NAME"
295-
echo ""
296-
# Fail if Image is missing from zip
297-
unzip -l "$ZIP_NAME" | grep -q "Image" || { echo "::error::Image missing from zip!"; exit 1; }
298-
echo "Image present in zip — OK"
268+
unzip -l "$GITHUB_WORKSPACE/$ZIP_NAME"
269+
unzip -l "$GITHUB_WORKSPACE/$ZIP_NAME" | grep -q "Image" \
270+
&& echo "Image present in zip - OK" \
271+
|| { echo "::error::Image missing from zip!"; exit 1; }
299272
300273
- name: Upload artifact
301274
uses: actions/upload-artifact@v4
@@ -316,7 +289,7 @@ EOF
316289
uses: softprops/action-gh-release@v2
317290
with:
318291
tag_name: ksu-${{ steps.ksu_info.outputs.ksu_version }}-build${{ github.run_number }}
319-
name: "KernelSU ${{ steps.ksu_info.outputs.ksu_version }} Samsung A04s"
292+
name: "KernelSU ${{ steps.ksu_info.outputs.ksu_version }} - Samsung A04s"
320293
body: |
321294
## Samsung A04s (SM-A047F) Kernel + KernelSU
322295
@@ -333,7 +306,7 @@ EOF
333306
2. Flash the ZIP
334307
3. Reboot to system
335308
4. Install **KernelSU Manager APK** from the [KernelSU releases page](https://github.com/tiann/KernelSU/releases)
336-
5. Open Manager status should show **Working**
309+
5. Open Manager - status should show **Working**
337310
338311
> Built automatically via GitHub Actions
339312
files: ${{ env.ZIP_NAME }}

0 commit comments

Comments
 (0)