Skip to content

Commit 443d352

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

File tree

2 files changed

+64
-6
lines changed

2 files changed

+64
-6
lines changed

.github/actions/action.yml

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,7 @@ runs:
405405
make -j$(nproc --all) O=out $MAKE_ARGS || exit 1
406406
407407
- name: Create Kernel ZIP
408+
id: create_zip
408409
shell: bash
409410
run: |
410411
CONFIG_DIR="$GITHUB_WORKSPACE/${{ env.CONFIG }}"
@@ -421,8 +422,65 @@ runs:
421422
echo "Creating zip file $ZIP_NAME in $ARTIFACTS_DIR..."
422423
zip -r "$ARTIFACTS_DIR/$ZIP_NAME" ./*
423424
425+
- name: Save Build Metadata
426+
shell: bash
427+
if: success() && steps.create_zip.conclusion == 'success'
428+
id: save_metadata
429+
run: |
430+
CONFIG_DIR="$GITHUB_WORKSPACE/${{ env.CONFIG }}"
431+
ARTIFACTS_DIR="$CONFIG_DIR/artifacts"
432+
cd "$ARTIFACTS_DIR"
433+
if [ -z "$(ls *.zip 2>/dev/null)" ]; then
434+
echo "No kernel zip found! Artifact upload might be fake."
435+
exit 1
436+
fi
437+
438+
cd "$CONFIG_DIR/kernel_platform/common"
439+
CONFIG_FILES=("build.config.common" "build.config.constants")
440+
BRANCH_LINE=""
441+
442+
for file in "${CONFIG_FILES[@]}"; do
443+
if [ -f "$file" ]; then
444+
line=$(grep '^[[:space:]]*BRANCH=' "$file" | head -n1 || true)
445+
if [ -n "$line" ]; then
446+
BRANCH_LINE="$line"
447+
echo "Found BRANCH in: $file"
448+
break # Found it — exit loop
449+
else
450+
echo "File exists but no BRANCH= found: $file"
451+
fi
452+
else
453+
echo "File not found: $file"
454+
fi
455+
done
456+
457+
if [ -z "$BRANCH_LINE" ]; then
458+
echo "Error: No BRANCH= found in any of: ${CONFIG_FILES[*]}"
459+
exit 1
460+
fi
461+
462+
BRANCH_VALUE="${BRANCH_LINE#*=}"
463+
ANDROID_VERSION="${BRANCH_VALUE%-*}"
464+
465+
if [ -z "$ANDROID_VERSION" ]; then
466+
echo "Error: Could not extract 'androidXX' from BRANCH='$BRANCH_VALUE'"
467+
exit 1
468+
fi
469+
470+
# Extract values using grep and awk
471+
VERSION=$(grep '^VERSION *=' Makefile | awk '{print $3}')
472+
PATCHLEVEL=$(grep '^PATCHLEVEL *=' Makefile | awk '{print $3}')
473+
SUBLEVEL=$(grep '^SUBLEVEL *=' Makefile | awk '{print $3}')
474+
FULL_VERSION="$VERSION.$PATCHLEVEL.$SUBLEVEL"
475+
476+
echo "Kernel Version: $ANDROID_VERSION-$FULL_VERSION"
477+
478+
cd "$ARTIFACTS_DIR"
479+
echo "$ANDROID_VERSION-$FULL_VERSION" > ${{ inputs.model }}.txt
480+
424481
- name: Upload Artifacts
425482
uses: actions/upload-artifact@v4
426483
with:
427484
name: kernel-${{ env.CONFIG }}
428-
path: ${{ env.CONFIG }}/artifacts/*.zip
485+
path: |
486+
${{ env.CONFIG }}/artifacts/*

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -348,11 +348,11 @@ jobs:
348348
EOF
349349
350350
# Generate table rows
351-
for file in $(find downloaded-artifacts -name "*.zip" -type f | sort); do
351+
for file in $(find downloaded-artifacts -name "*.txt" -type f | sort); do
352352
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
353+
model=$(basename "$file" .txt)
354+
version=$(cat "$file")
355+
printf "| %-12s | %-16s |\n" "$model" "$version" >> release_notes.md
356356
fi
357357
done
358358
@@ -392,4 +392,4 @@ jobs:
392392
echo "Uploading $file..."
393393
gh release upload "${{ env.NEW_TAG }}" "$file" --clobber
394394
fi
395-
done
395+
done

0 commit comments

Comments
 (0)