Build GKI Kernels #6
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Kernel | |
on: | |
workflow_dispatch: # Allows manual triggering of the workflow | |
jobs: | |
build_kernel: | |
runs-on: ubuntu-latest | |
steps: | |
# Step 0: Maximize build space | |
- name: Maximize build space | |
uses: easimon/maximize-build-space@master | |
with: | |
root-reserve-mb: 8192 | |
temp-reserve-mb: 2048 | |
remove-dotnet: 'true' | |
remove-android: 'true' | |
remove-haskell: 'true' | |
remove-codeql: 'true' | |
# Step 1: Download prebuilt toolchain | |
- name: Download prebuilt toolchain | |
run: | | |
AOSP_MIRROR=https://android.googlesource.com | |
BRANCH=main-kernel-build-2024 | |
# Clone necessary prebuilt tools | |
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 mkbootimg | |
# Add tools to PATH | |
echo "$GITHUB_WORKSPACE/kernel-build-tools/linux-x86/bin" >> $GITHUB_PATH | |
echo "$GITHUB_WORKSPACE/build-tools/path/linux-x86" >> $GITHUB_PATH | |
echo "$GITHUB_WORKSPACE/mkbootimg" >> $GITHUB_PATH | |
# Step 2: Set boot sign key (store key in the environment and write to a file in new directory) | |
- name: Set boot sign key | |
env: | |
BOOT_SIGN_KEY: ${{ secrets.BOOT_SIGN_KEY }} # Environment variable for the key | |
run: | | |
if [ ! -z "$BOOT_SIGN_KEY" ]; then | |
# Create a new directory in GITHUB_WORKSPACE to avoid permission issues | |
mkdir -p $GITHUB_WORKSPACE/avb_keys | |
echo "$BOOT_SIGN_KEY" > $GITHUB_WORKSPACE/avb_keys/testkey_rsa2048.pem | |
# Ensure it's readable by everyone | |
chmod 644 $GITHUB_WORKSPACE/avb_keys/testkey_rsa2048.pem | |
# Optionally, add the directory to the PATH | |
echo "$GITHUB_WORKSPACE/avb_keys" >> $GITHUB_PATH | |
fi | |
# Step 3: Install GitHub CLI (gh) using the .deb file | |
- name: Install GitHub CLI (gh) using .deb file | |
run: | | |
# Download the latest .deb file for GitHub CLI | |
GH_VERSION=$(curl -s https://api.github.com/repos/cli/cli/releases/latest | jq -r .tag_name) | |
curl -LO https://github.com/cli/cli/releases/download/$GH_VERSION/gh_$GH_VERSION_linux_amd64.deb | |
# Install the .deb package using dpkg | |
sudo dpkg -i gh_$GH_VERSION_linux_amd64.deb | |
# Fix missing dependencies (if any) | |
sudo apt-get install -f -y | |
# Step 4: Authenticate with GitHub CLI | |
- name: Authenticate with GitHub CLI | |
run: | | |
# Authenticate using GITHUB_TOKEN or a Personal Access Token | |
gh auth login --with-token <<< ${{ secrets.GITHUB_TOKEN }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# Step 5: Set git username and email | |
- name: Set Git username and email | |
run: | | |
git config --global user.name "TheWildJames" | |
git config --global user.email "[email protected]" | |
# Step 6: Clone kernel build scripts | |
- name: Clone kernel build scripts | |
run: | | |
git clone https://github.com/TheWildJames/kernel_build_scripts.git | |
# Step 7: Run kernel build script | |
- name: Run kernel build script | |
run: | | |
chmod +x kernel_build_scripts/GKI/aio_gki_build_kernel_release.sh | |
kernel_build_scripts/GKI/aio_gki_build_kernel_release.sh |