A useful advanced kernel building scripts with CI/CD and Telegram bot integration features.
Can be used on local or remote machine.
Including Anykernel3 flashable repacking.
-
sudo apt-get update
-
sudo apt-get install python \ python2 \ python3 \ python3-pip tzdata \ build-essential \ bc \ bison \ flex \ gcc \ clang \ libc6 \ libstdc++6 \ libssl-dev \ zip \ p7zip-full \ git
-
pip3 install -r requirements.txt
NOTE: before building, you must edit the ci_build.cfg according your needed. (Instructions inside)
- Starting building and verbosely building process in your terminal.
python3 ci_build.py --build --verbose
- Add
--tele-notifier
Argument to Enable Telegram bot integration.- Enable building confirmation dialog to telegram bot. (reply with message
Y
to continue building orN
to abort building)python3 ci_build.py --build --tele-notifier --tele-check
- Synchronize Host Server(CI/CD) with remote timezone.
python3 ci_build.py --build --tele-notifier --tele-tz Asia/Jakarta
- Send file to telegram bot (this is another feature of our scripts. can be used if you remote your CI/CD Server by SSH and need to send a file to telegram bot)
python3 ci_build.py --build --tele-notifier --tele-ship ./foo.zip
- Enable building confirmation dialog to telegram bot. (reply with message
- Clean build output.
python3 ci_build.py --clean
- Show command arguments
python3 ci_build.py --help
NOTE: --tele-notifier
Command Script Arguments is needed to enable telegram bot integration
-
You can reconfigure building scripts by sending messages example below to telegram bot.
NOTE:
KLIB=True FLASHABLE=True DO_DEVICE=rosy KERNEL_STRING=EternalX<s>Kernel<s>Stable SUPPORTED_VER=8-9 ZIPNAME=kernel-name DEFCONFIG=someone_defconfig CPU=6 COMPILER=clang USER=zexceed HOST=lawliet
- that messages must sended before building is started.
- space not allowed (except KERNEL_STRING use
<s>
for space). - Don't send any messages after that messages before building is started.
- that messages will be readable for 24 hours. if past 24 hour you need send the message again.
- if configurations is not in the message. it will be follow default ci_build.cfg.
- messages is case sensitive.
- Fork this repository to your github and edit ci_build.cfg. and then make sure you have a repository of your kernel source, toolchain, and anykernel3 that will needed by CI/CD.
-
Add Building Commands to your CI/CD Configurations (config.yml)
- Configurations Example for Drone CI:
--- kind: pipeline name: EternalX-Pipeline clone: depth: 1 steps: - name: Building commands: - apt-get -y update && apt-get -y upgrade && apt-get -y install python python2 python3 python3-pip tzdata build-essential bc bison flex gcc clang libc6 libstdc++6 libssl-dev zip p7zip-full git - git clone https://github.com/EternalX-project/ci_script -b master --depth=1 - cd ci_script - git clone https://github.com/EternalX-project/android_kernel_xiaomi_rosy-4.9.git --depth=1 - git clone https://github.com/EternalX-project/EternalX-flasher --depth=1 - git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9 -b ndk-release-r16 --depth=1 - pip3 install -r requirements.txt - python3 ci_build.py --build --tele-notifier --tele-check --verbose --tele-tz Asia/Jakarta image: fadlyas/kernel_dockerfile:latest trigger: branch: - lineage-18.1
- Configurations Example for Circle CI:
version: 2.1 jobs: compile: docker: - image: ubuntu:20.04 steps: - run: no_output_timeout: 50m command: | apt-get -y update && apt-get -y upgrade && apt-get -y install python python2 python3 python3-pip tzdata build-essential bc bison flex gcc clang libc6 libstdc++6 libssl-dev zip p7zip-full git git clone https://github.com/zexceed12300/ci_script -b master cd ci_script git clone https://github.com/zexceed12300/EternalX-flasher git clone https://github.com/EternalX-project/android_kernel_xiaomi_rosy-4.9.git git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9 -b ndk-release-r16 --depth=1 pip3 install -r requirements.txt python3 ci_build.py --build --tele-notifier --tele-check --verbose --tele-tz Asia/Jakarta workflows: version: 2.1 cooking: jobs: - compile
- Configurations Example for Drone CI:
- You can start building by push some commit to your repository or start directly on CI/CD pipelines.