From 583426ecc5d8edbdf74d4830e687fadd7d8190ed Mon Sep 17 00:00:00 2001 From: weishu Date: Fri, 20 Oct 2023 08:53:08 +0800 Subject: [PATCH] Add Android 14 kernel ci (#1057) --- .github/workflows/build-kernel-a13.yml | 1 + .github/workflows/build-kernel-a14.yml | 116 +++++++++++++++++++++++++ .github/workflows/gki-kernel.yml | 9 +- 3 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/build-kernel-a14.yml diff --git a/.github/workflows/build-kernel-a13.yml b/.github/workflows/build-kernel-a13.yml index 1bcabf71..bb44885c 100644 --- a/.github/workflows/build-kernel-a13.yml +++ b/.github/workflows/build-kernel-a13.yml @@ -151,4 +151,5 @@ jobs: version: android13-${{ matrix.version }} version_name: android13-${{ matrix.version }}.${{ matrix.sub_level }} tag: android13-${{ matrix.version }}-${{ matrix.os_patch_level }} + os_patch_level: ${{ matrix.os_patch_level }} patch_path: ${{ matrix.version }} diff --git a/.github/workflows/build-kernel-a14.yml b/.github/workflows/build-kernel-a14.yml new file mode 100644 index 00000000..a9c4be80 --- /dev/null +++ b/.github/workflows/build-kernel-a14.yml @@ -0,0 +1,116 @@ +name: Build Kernel - Android 14 +on: + push: + branches: ["main", "ci"] + paths: + - ".github/workflows/build-kernel-a14.yml" + - ".github/workflows/gki-kernel.yml" + - ".github/scripts/build_a13.sh" + - "kernel/**" + pull_request: + branches: ["main"] + paths: + - ".github/workflows/build-kernel-a14.yml" + - ".github/workflows/gki-kernel.yml" + - ".github/scripts/build-a13.sh" + - "kernel/**" + workflow_call: +jobs: + build-kernel: + if: github.event_name != 'pull_request' + strategy: + matrix: + include: + - version: "5.15" + sub_level: 110 + os_patch_level: 2023-09 + uses: ./.github/workflows/gki-kernel.yml + secrets: inherit + with: + version: android14-${{ matrix.version }} + version_name: android14-${{ matrix.version }}.${{ matrix.sub_level }} + tag: android14-${{ matrix.version }}-${{ matrix.os_patch_level }} + os_patch_level: ${{ matrix.os_patch_level }} + patch_path: ${{ matrix.version }} + upload-artifacts: + needs: build-kernel + runs-on: ubuntu-latest + if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' || github.ref == 'refs/heads/ci' }} + env: + CHAT_ID: ${{ secrets.CHAT_ID }} + CACHE_CHAT_ID: ${{ secrets.CACHE_CHAT_ID }} + BOT_TOKEN: ${{ secrets.BOT_TOKEN }} + MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }} + COMMIT_MESSAGE: ${{ github.event.head_commit.message }} + COMMIT_URL: ${{ github.event.head_commit.url }} + RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + steps: + - name: Download artifacts + uses: actions/download-artifact@v3 + + - uses: actions/checkout@v4 + with: + path: KernelSU + fetch-depth: 0 + + - name: List artifacts + run: | + tree + + - name: Download prebuilt toolchain + run: | + AOSP_MIRROR=https://android.googlesource.com + BRANCH=main-kernel-build-2023 + git clone $AOSP_MIRROR/platform/prebuilts/build-tools -b $BRANCH --depth 1 build-tools + git clone $AOSP_MIRROR/kernel/prebuilts/build-tools -b $BRANCH --depth 1 kernel-build-tools + git clone $AOSP_MIRROR/platform/system/tools/mkbootimg -b $BRANCH --depth 1 + pip3 install python-telegram-bot + + - name: Set boot sign key + env: + BOOT_SIGN_KEY: ${{ secrets.BOOT_SIGN_KEY }} + run: | + if [ ! -z "$BOOT_SIGN_KEY" ]; then + echo "$BOOT_SIGN_KEY" > ./kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem + fi + + - name: Setup mutex for uploading + uses: ben-z/gh-action-mutex@v1.0-alpha-7 + + - name: Build boot images + run: | + export AVBTOOL=$GITHUB_WORKSPACE/kernel-build-tools/linux-x86/bin/avbtool + export GZIP=$GITHUB_WORKSPACE/build-tools/path/linux-x86/gzip + export LZ4=$GITHUB_WORKSPACE/build-tools/path/linux-x86/lz4 + export MKBOOTIMG=$GITHUB_WORKSPACE/mkbootimg/mkbootimg.py + export UNPACK_BOOTIMG=$GITHUB_WORKSPACE/mkbootimg/unpack_bootimg.py + cd $GITHUB_WORKSPACE/KernelSU + export VERSION=$(($(git rev-list --count HEAD) + 10200)) + echo "VERSION: $VERSION" + cd - + bash $GITHUB_WORKSPACE/KernelSU/.github/scripts/build_a13.sh + + - name: Display structure of boot files + run: ls -R + + - name: Upload images artifact + uses: actions/upload-artifact@v3 + with: + name: boot-images-android13 + path: Image-android13*/*.img.gz + + check-build-kernel: + if: github.event_name == 'pull_request' + strategy: + matrix: + include: + - version: "5.15" + sub_level: 110 + os_patch_level: 2023-09 + uses: ./.github/workflows/gki-kernel.yml + with: + version: android14-${{ matrix.version }} + version_name: android14-${{ matrix.version }}.${{ matrix.sub_level }} + tag: android14-${{ matrix.version }}-${{ matrix.os_patch_level }} + os_patch_level: ${{ matrix.os_patch_level }} + patch_path: ${{ matrix.version }} diff --git a/.github/workflows/gki-kernel.yml b/.github/workflows/gki-kernel.yml index fc7598e8..feb55d73 100644 --- a/.github/workflows/gki-kernel.yml +++ b/.github/workflows/gki-kernel.yml @@ -164,12 +164,19 @@ jobs: export KSU_EXPECTED_SIZE=${{ vars.EXPECTED_SIZE }} export KSU_EXPECTED_HASH=${{ vars.EXPECTED_HASH }} fi - CCACHE="/usr/bin/ccache" LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh + if [ -e build/build.sh ]; then + CCACHE="/usr/bin/ccache" LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh + else + tools/bazel run --lto=thin //common:kernel_aarch64_dist -- --dist_dir=dist + fi - name: Prepare artifacts id: prepareArtifacts run: | OUTDIR=android-kernel/out/${{ inputs.version }}/dist + if [ ! -e $OUTDIR ]; then + OUTDIR=android-kernel/dist + fi mkdir output cp $OUTDIR/Image ./output/ cp $OUTDIR/Image.lz4 ./output/