@@ -332,26 +332,38 @@ runs:
332
332
BUILDCONFIG="$KERNEL_PATH/common/build.config.gki"
333
333
CONSTANTSCONFIG="$KERNEL_PATH/common/build.config.constants"
334
334
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)
341
342
CLANG_VERSION="clang-$CLANG_VERSION"
342
343
else
343
344
echo "No clang version found in config, will auto-detect in prebuilts."
344
345
fi
345
346
if [ -z "$CLANG_VERSION" ]; then
346
347
if [ -d "$KERNEL_PATH/prebuilts/clang/host/linux-x86" ]; then
347
348
CLANG_VERSION=$(ls -d "$KERNEL_PATH"/prebuilts/clang/host/linux-x86/*/ | head -n 1 | xargs basename)
349
+ CLANG_BIN_PATH="$KERNEL_PATH/prebuilts/clang/host/linux-x86/$CLANG_VERSION/bin"
350
+ elif [ -d "$KERNEL_PATH/prebuilts-master/clang/host/linux-x86" ]; then
351
+ CLANG_VERSION=$(ls -d "$KERNEL_PATH"/prebuilts-master/clang/host/linux-x86/*/ | head -n 1 | xargs basename)
352
+ CLANG_BIN_PATH="$KERNEL_PATH/prebuilts-master/clang/host/linux-x86/$CLANG_VERSION/bin"
348
353
else
349
354
CLANG_VERSION="clang"
355
+ CLANG_BIN_PATH="$KERNEL_PATH/prebuilts/clang/host/linux-x86/$CLANG_VERSION/bin" # dummy
356
+ fi
357
+ else
358
+ if [ -d "$KERNEL_PATH/prebuilts/clang/host/linux-x86" ]; then
359
+ CLANG_BIN_PATH="$KERNEL_PATH/prebuilts/clang/host/linux-x86/$CLANG_VERSION/bin"
360
+ else
361
+ CLANG_BIN_PATH="$KERNEL_PATH/prebuilts-master/clang/host/linux-x86/$CLANG_VERSION/bin"
350
362
fi
351
363
fi
352
364
echo "Detected CLANG_VERSION: $CLANG_VERSION"
353
365
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
355
367
356
368
- name : Build Kernel
357
369
shell : bash
@@ -405,6 +417,7 @@ runs:
405
417
make -j$(nproc --all) O=out $MAKE_ARGS || exit 1
406
418
407
419
- name : Create Kernel ZIP
420
+ id : create_zip
408
421
shell : bash
409
422
run : |
410
423
CONFIG_DIR="$GITHUB_WORKSPACE/${{ env.CONFIG }}"
@@ -421,8 +434,65 @@ runs:
421
434
echo "Creating zip file $ZIP_NAME in $ARTIFACTS_DIR..."
422
435
zip -r "$ARTIFACTS_DIR/$ZIP_NAME" ./*
423
436
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
+
424
493
- name : Upload Artifacts
425
494
uses : actions/upload-artifact@v4
426
495
with :
427
496
name : kernel-${{ env.CONFIG }}
428
- path : ${{ env.CONFIG }}/artifacts/*.zip
497
+ path : |
498
+ ${{ env.CONFIG }}/artifacts/*
0 commit comments