Skip to content

Commit 9384042

Browse files
committed
Extract Kernel Version from source and update Release Notes
1 parent db3490f commit 9384042

File tree

2 files changed

+82
-26
lines changed

2 files changed

+82
-26
lines changed

.github/actions/action.yml

Lines changed: 78 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -332,26 +332,38 @@ runs:
332332
BUILDCONFIG="$KERNEL_PATH/common/build.config.gki"
333333
CONSTANTSCONFIG="$KERNEL_PATH/common/build.config.constants"
334334
CLANG_VERSION=""
335-
if grep -q '^CONFIG_CLANG_VERSION=' "$DEFCONFIG"; then
336-
CLANG_VERSION=$(grep '^CONFIG_CLANG_VERSION=' "$DEFCONFIG" | head -n1 | cut -d'=' -f2 | tr -d '"')
337-
elif grep -q '^CLANG_VERSION=' "$BUILDCONFIG"; then
338-
CLANG_VERSION=$(grep '^CLANG_VERSION=' "$BUILDCONFIG" | head -n1 | cut -d'=' -f2)
339-
elif grep -q '^CLANG_VERSION=' "$CONSTANTSCONFIG"; then
340-
CLANG_VERSION=$(grep '^CLANG_VERSION=' "$CONSTANTSCONFIG" | head -n1 | cut -d'=' -f2)
335+
CLANG_BIN_PATH=""
336+
if grep -q '^CONFIG_CLANG_VERSION=' "$DEFCONFIG" 2>/dev/null; then
337+
CLANG_VERSION=$(grep '^CONFIG_CLANG_VERSION=' "$DEFCONFIG" 2>/dev/null | head -n1 | cut -d'=' -f2 | tr -d '"' | xargs)
338+
elif grep -q '^CLANG_VERSION=' "$BUILDCONFIG" 2>/dev/null; then
339+
CLANG_VERSION=$(grep '^CLANG_VERSION=' "$BUILDCONFIG" 2>/dev/null | head -n1 | cut -d'=' -f2 | xargs)
340+
elif grep -q '^CLANG_VERSION=' "$CONSTANTSCONFIG" 2>/dev/null; then
341+
CLANG_VERSION=$(grep '^CLANG_VERSION=' "$CONSTANTSCONFIG" 2>/dev/null | head -n1 | cut -d'=' -f2 | xargs)
341342
CLANG_VERSION="clang-$CLANG_VERSION"
343+
if [ -d "$KERNEL_PATH/prebuilts/clang/host/linux-x86" ]; then
344+
CLANG_BIN_PATH="$KERNEL_PATH/prebuilts/clang/host/linux-x86/$CLANG_VERSION/bin"
345+
elif [ -d "$KERNEL_PATH/prebuilts-master/clang/host/linux-x86" ]; then
346+
CLANG_BIN_PATH="$KERNEL_PATH/prebuilts-master/clang/host/linux-x86/$CLANG_VERSION/bin"
347+
else
348+
CLANG_BIN_PATH="$KERNEL_PATH/prebuilts/clang/host/linux-x86/$CLANG_VERSION/bin"
349+
fi
342350
else
343351
echo "No clang version found in config, will auto-detect in prebuilts."
344352
fi
345353
if [ -z "$CLANG_VERSION" ]; then
346354
if [ -d "$KERNEL_PATH/prebuilts/clang/host/linux-x86" ]; then
347355
CLANG_VERSION=$(ls -d "$KERNEL_PATH"/prebuilts/clang/host/linux-x86/*/ | head -n 1 | xargs basename)
356+
CLANG_BIN_PATH="$KERNEL_PATH/prebuilts/clang/host/linux-x86/$CLANG_VERSION/bin"
357+
elif [ -d "$KERNEL_PATH/prebuilts-master/clang/host/linux-x86" ]; then
358+
CLANG_VERSION=$(ls -d "$KERNEL_PATH"/prebuilts-master/clang/host/linux-x86/*/ | head -n 1 | xargs basename)
359+
CLANG_BIN_PATH="$KERNEL_PATH/prebuilts-master/clang/host/linux-x86/$CLANG_VERSION/bin"
348360
else
349361
CLANG_VERSION="clang"
350362
fi
351363
fi
352364
echo "Detected CLANG_VERSION: $CLANG_VERSION"
353365
echo "CLANG_VERSION=$CLANG_VERSION" >> $GITHUB_ENV
354-
echo "CLANG_BIN_PATH=$KERNEL_PATH/prebuilts/clang/host/linux-x86/$CLANG_VERSION/bin" >> $GITHUB_ENV
366+
echo "CLANG_BIN_PATH=$CLANG_BIN_PATH" >> $GITHUB_ENV
355367
356368
- name: Build Kernel
357369
shell: bash
@@ -405,6 +417,7 @@ runs:
405417
make -j$(nproc --all) O=out $MAKE_ARGS || exit 1
406418
407419
- name: Create Kernel ZIP
420+
id: create_zip
408421
shell: bash
409422
run: |
410423
CONFIG_DIR="$GITHUB_WORKSPACE/${{ env.CONFIG }}"
@@ -421,8 +434,65 @@ runs:
421434
echo "Creating zip file $ZIP_NAME in $ARTIFACTS_DIR..."
422435
zip -r "$ARTIFACTS_DIR/$ZIP_NAME" ./*
423436
437+
- name: Save Build Metadata
438+
shell: bash
439+
if: success() && steps.create_zip.conclusion == 'success'
440+
id: save_metadata
441+
run: |
442+
CONFIG_DIR="$GITHUB_WORKSPACE/${{ env.CONFIG }}"
443+
ARTIFACTS_DIR="$CONFIG_DIR/artifacts"
444+
cd "$ARTIFACTS_DIR"
445+
if [ -z "$(ls *.zip 2>/dev/null)" ]; then
446+
echo "No kernel zip found! Artifact upload might be fake."
447+
exit 1
448+
fi
449+
450+
cd "$CONFIG_DIR/kernel_platform/common"
451+
CONFIG_FILES=("build.config.common" "build.config.constants")
452+
BRANCH_LINE=""
453+
454+
for file in "${CONFIG_FILES[@]}"; do
455+
if [ -f "$file" ]; then
456+
line=$(grep '^[[:space:]]*BRANCH=' "$file" | head -n1 || true)
457+
if [ -n "$line" ]; then
458+
BRANCH_LINE="$line"
459+
echo "Found BRANCH in: $file"
460+
break # Found it — exit loop
461+
else
462+
echo "File exists but no BRANCH= found: $file"
463+
fi
464+
else
465+
echo "File not found: $file"
466+
fi
467+
done
468+
469+
if [ -z "$BRANCH_LINE" ]; then
470+
echo "Error: No BRANCH= found in any of: ${CONFIG_FILES[*]}"
471+
exit 1
472+
fi
473+
474+
BRANCH_VALUE="${BRANCH_LINE#*=}"
475+
ANDROID_VERSION="${BRANCH_VALUE%-*}"
476+
477+
if [ -z "$ANDROID_VERSION" ]; then
478+
echo "Error: Could not extract 'androidXX' from BRANCH='$BRANCH_VALUE'"
479+
exit 1
480+
fi
481+
482+
# Extract values using grep and awk
483+
VERSION=$(grep '^VERSION *=' Makefile | awk '{print $3}')
484+
PATCHLEVEL=$(grep '^PATCHLEVEL *=' Makefile | awk '{print $3}')
485+
SUBLEVEL=$(grep '^SUBLEVEL *=' Makefile | awk '{print $3}')
486+
FULL_VERSION="$VERSION.$PATCHLEVEL.$SUBLEVEL"
487+
488+
echo "Kernel Version: $ANDROID_VERSION-$FULL_VERSION"
489+
490+
cd "$ARTIFACTS_DIR"
491+
echo "$ANDROID_VERSION-$FULL_VERSION" > ${{ inputs.model }}.txt
492+
424493
- name: Upload Artifacts
425494
uses: actions/upload-artifact@v4
426495
with:
427496
name: kernel-${{ env.CONFIG }}
428-
path: ${{ env.CONFIG }}/artifacts/*.zip
497+
path: |
498+
${{ env.CONFIG }}/artifacts/*

.github/workflows/build-kernel-release.yml

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -154,13 +154,6 @@ jobs:
154154
kernel_version: ${{ matrix.kernel_version }}
155155
ksun_branch: ${{ inputs.ksun_branch }}
156156
susfs_branch: ${{ steps.get-susfs-branch.outputs.susfs_branch }}
157-
158-
- name: Upload Build Artifacts
159-
uses: actions/upload-artifact@v4
160-
with:
161-
name: ${{ matrix.model }}-kernel
162-
path: ${{ matrix.model }}/artifacts/
163-
if-no-files-found: error
164157

165158
build-batch-2:
166159
name: build-batch-2 (${{ matrix.model }}, ${{ matrix.soc }}, ${{ matrix.branch }}, ${{ matrix.manifest }}, ${{ matrix.android_version }}, ${{ matrix.kernel_version }}, ${{ inputs.ksun_branch }})
@@ -282,13 +275,6 @@ jobs:
282275
kernel_version: ${{ matrix.kernel_version }}
283276
ksun_branch: ${{ inputs.ksun_branch }}
284277
susfs_branch: ${{ steps.get-susfs-branch.outputs.susfs_branch }}
285-
286-
- name: Upload Build Artifacts
287-
uses: actions/upload-artifact@v4
288-
with:
289-
name: ${{ matrix.model }}-kernel
290-
path: ${{ matrix.model }}/artifacts/
291-
if-no-files-found: error
292278

293279
trigger-release:
294280
needs:
@@ -348,11 +334,11 @@ jobs:
348334
EOF
349335
350336
# Generate table rows
351-
for file in $(find downloaded-artifacts -name "*.zip" -type f | sort); do
337+
for file in $(find downloaded-artifacts -name "*.txt" -type f | sort); do
352338
if [ -f "$file" ]; then
353-
model=$(basename "$(dirname "$file")" | sed 's/-kernel$//')
354-
kernel_version=$(grep -oP 'android\d+-\d+\.\d+' "$file" || echo "${{ matrix.android_version }}-${{ matrix.kernel_version }}")
355-
printf "| %-12s | %-16s |\n" "$model" "$kernel_version" >> release_notes.md
339+
model=$(basename "$file" .txt)
340+
version=$(cat "$file")
341+
printf "| %-12s | %-16s |\n" "$model" "$version" >> release_notes.md
356342
fi
357343
done
358344

0 commit comments

Comments
 (0)