1+ name : Build Android Kernel then ship it in an AnyKernel3 flashable zip
2+
3+ on :
4+ push :
5+ branches :
6+ - polaris
7+ pull_request :
8+ branches :
9+ - polaris
10+ workflow_dispatch :
11+
12+ jobs :
13+ build :
14+ runs-on : ubuntu-22.04
15+
16+ steps :
17+ - name : ⚡ Checkout kernel's sourcecode and clone submodules
18+ uses : actions/checkout@v4
19+
20+ - name : 🔄 Update KernelSU-Next
21+ run : |
22+ rm -rf KernelSU-Next
23+ git clone https://github.com/KernelSU-Next/KernelSU-Next
24+
25+ - name : 📥 Clone AnyKernel3
26+ run : |
27+ git clone -b b1c1 https://github.com/Oneloutre/AnyKernel3.git anykernel
28+ rm -rf anykernel/.git
29+
30+ - name : 📦 Install dépendencies
31+ run : |
32+ sudo apt-get update -y -qq
33+ sudo apt-get install -y --no-install-recommends \
34+ python3-pip \
35+ git \
36+ zip \
37+ unzip \
38+ gcc \
39+ g++ \
40+ make \
41+ ninja-build \
42+ file \
43+ bc \
44+ bison \
45+ flex \
46+ libfl-dev \
47+ libssl-dev \
48+ libelf-dev \
49+ wget \
50+ build-essential \
51+ python3-dev \
52+ python3-setuptools \
53+ rsync \
54+ ccache \
55+ llvm-dev
56+ sudo apt install flex libncurses6 libncurses5 binutils-aarch64-linux-gnu device-tree-compiler \
57+ android-sdk-libsparse-utils python2
58+ sudo apt install -y gcc-arm-linux-gnueabi
59+ echo "CROSS_COMPILE_ARM32=arm-linux-gnueabi-" >> $GITHUB_ENV
60+
61+ - name : 🔧 Install Clang from a Github action
62+ uses : KyleMayes/install-llvm-action@v2
63+ with :
64+ version : " 18.1.8"
65+ directory : ${{ runner.temp }}/llvm
66+
67+ - name : 🔧 Add Clang to the PATH
68+ run : |
69+ echo "${{ runner.temp }}/llvm/bin" >> $GITHUB_PATH
70+
71+ - name : 🔍 Device's codename and kernel's version
72+ run : |
73+ DEVICE_CODENAME=Hayasaka-polaris
74+ KERNEL_VERSION=$(make kernelversion | tail -n 1)
75+
76+ echo "Device Codename: $DEVICE_CODENAME"
77+ echo "Kernel Version: $KERNEL_VERSION"
78+
79+ echo "DEVICE_CODENAME=$DEVICE_CODENAME" >> $GITHUB_ENV
80+ echo "KERNEL_VERSION=$KERNEL_VERSION" >> $GITHUB_ENV
81+
82+ - name : 🚀 Enable ccache to speed the build up
83+ uses : hendrikmuhs/ccache-action@v1.2
84+ with :
85+ max-size : 7G
86+
87+ - name : 🛠️ Build the kramel
88+ run : |
89+ export ARCH=arm64
90+ export SUBARCH=arm64
91+ export KBUILD_COMPILER_STRING=$(clang --version | head -n 1)
92+ export CCACHE_EXEC=$(which ccache)
93+ export KBUILD_BUILD_HOST="Hayasaka-Github-actions-Onelots"
94+
95+ make O=out ARCH=arm64 vendor/xiaomi/mi845_defconfig vendor/debugfs.config vendor/kernelsu.config vendor/xiaomi/polaris.config V=1
96+ make O=out ARCH=arm64 olddefconfig
97+ make -j$(nproc --all) O=out -j"$(nproc --all)" \
98+ ARCH=arm64 \
99+ CC="ccache clang" \
100+ LLVM=1 \
101+ LLVM_IAS=1 \
102+ CLANG_TRIPLE=aarch64-linux-gnu- \
103+ CROSS_COMPILE=aarch64-linux-android- \
104+ CROSS_COMPILE_ARM32=arm-linux-androideabi-
105+
106+ - name : 🚀 Copy the compiled kernel to AnyKernel3 then create the zip
107+ run : |
108+ ZIP_NAME="Kernel-${DEVICE_CODENAME}-${KERNEL_VERSION}-$(date +%d%m%Y).zip"
109+
110+ cp out/arch/arm64/boot/Image.gz-dtb anykernel/
111+
112+ cd anykernel && zip -r9 $ZIP_NAME ./*
113+ mv $ZIP_NAME ../
114+
115+ echo "ZIP_NAME=$ZIP_NAME" >> $GITHUB_ENV
116+
117+ - name : 📤 Publish github release
118+ uses : softprops/action-gh-release@v2
119+ with :
120+ files : ${{ env.ZIP_NAME }}
121+ tag_name : " latest"
122+ draft : false
123+ prerelease : false
124+
125+ - name : 📤 Publish with tag associated to the kernel
126+ uses : softprops/action-gh-release@v2
127+ with :
128+ files : ${{ env.ZIP_NAME }}
129+ tag_name : " ${{ env.ZIP_NAME }}"
130+ draft : false
131+ prerelease : false
132+
133+ - name : 🚀 Notify people on Discord
134+ env :
135+ DEVICE_CODENAME : ${{ env.DEVICE_CODENAME }}
136+ KERNEL_VERSION : ${{ env.KERNEL_VERSION }}
137+ WEBHOOK : ${{ secrets.WEBHOOK }}
138+ NAME : ${{ env.ZIP_NAME }}
139+ run : |
140+ python3 .github/webhook.py
0 commit comments