diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000000..60d9c8a1f12c --- /dev/null +++ b/.github/workflows/main.yml @@ -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/