Skip to content
64 changes: 64 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Build Nord CE Driver

on:
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-22.04

steps:
- name: Checkout Code
uses: actions/checkout@v4

- name: Install Dependencies
run: |
sudo apt update
sudo apt install -y build-essential bc bison flex libssl-dev libelf-dev git python3

- name: Install Python 2 (required for old kernel build scripts)
run: |
sudo apt install -y python2
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
python --version

- name: Clone Kernel Source
run: |
git clone --depth=1 https://github.com/OnePlusOSS/android_kernel_oneplus_sm7225 kernel-source

- name: Download Prebuilt GCC Toolchain (aarch64)
run: |
git clone --depth=1 https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9 $GITHUB_WORKSPACE/gcc64
git clone --depth=1 https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9 $GITHUB_WORKSPACE/gcc32

- name: Verify Toolchain Exists
run: |
echo "---- gcc64/bin contents ----"
ls -la $GITHUB_WORKSPACE/gcc64/bin/ || echo "gcc64/bin NOT FOUND"
echo "---- gcc32/bin contents ----"
ls -la $GITHUB_WORKSPACE/gcc32/bin/ || echo "gcc32/bin NOT FOUND"
echo "---- Testing compiler ----"
$GITHUB_WORKSPACE/gcc64/bin/aarch64-linux-android-gcc --version || echo "COMPILER NOT WORKING"

- name: Prepare Kernel
run: |
cd kernel-source
export ARCH=arm64
export CROSS_COMPILE=$GITHUB_WORKSPACE/gcc64/bin/aarch64-linux-android-
export CROSS_COMPILE_ARM32=$GITHUB_WORKSPACE/gcc32/bin/arm-linux-androideabi-
make O=out vendor/lito-perf_defconfig
make O=out olddefconfig

- name: Build Kernel
run: |
cd kernel-source
export ARCH=arm64
export CROSS_COMPILE=$GITHUB_WORKSPACE/gcc64/bin/aarch64-linux-android-
export CROSS_COMPILE_ARM32=$GITHUB_WORKSPACE/gcc32/bin/arm-linux-androideabi-
make O=out ARCH=arm64 -j$(nproc)

- name: Upload Build Output
uses: actions/upload-artifact@v4
with:
name: kernel-build-output
path: kernel-source/out/arch/arm64/boot/