action.yml 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. name: 'Setup Build Environment'
  2. description: 'Clones dependencies and exports mkbootimg/avbtool paths'
  3. inputs:
  4. patches_commit:
  5. required: false
  6. anykernel_commit:
  7. required: false
  8. runs:
  9. using: composite
  10. steps:
  11. - shell: bash
  12. run: |
  13. set -euo pipefail
  14. # Setup ccache for both build.sh and Bazel
  15. sudo apt-get update && sudo apt-get install -y ccache
  16. export CCACHE_DIR="$GITHUB_WORKSPACE/.ccache"
  17. export CC="ccache gcc"
  18. export CXX="ccache g++"
  19. echo "CCACHE_DIR=$GITHUB_WORKSPACE/.ccache" >> "$GITHUB_ENV"
  20. echo "CC='ccache gcc'" >> "$GITHUB_ENV"
  21. echo "CXX='ccache g++'" >> "$GITHUB_ENV"
  22. echo "$GITHUB_WORKSPACE/.ccache" > "$GITHUB_PATH"
  23. # For Bazel (kleaf), set up remote and disk cache if needed
  24. echo "BAZEL_CACHE_DIR=$GITHUB_WORKSPACE/.cache/bazel" >> "$GITHUB_ENV"
  25. mkdir -p "$GITHUB_WORKSPACE/.cache/bazel"
  26. mkdir -p "$GITHUB_WORKSPACE/kernel"
  27. mkdir -p "$GITHUB_WORKSPACE/git-repo"
  28. curl -L https://storage.googleapis.com/git-repo-downloads/repo -o "$GITHUB_WORKSPACE/git-repo/repo"
  29. chmod +x "$GITHUB_WORKSPACE/git-repo/repo"
  30. echo "$GITHUB_WORKSPACE/git-repo" >> "$GITHUB_PATH"
  31. if [ -n "${{ inputs.patches_commit }}" ]; then
  32. if [ -d "$GITHUB_WORKSPACE/kernel_patches" ]; then rm -rf "$GITHUB_WORKSPACE/kernel_patches"; fi
  33. git clone https://github.com/WildKernels/kernel_patches.git "$GITHUB_WORKSPACE/kernel_patches"
  34. cd "$GITHUB_WORKSPACE/kernel_patches"
  35. git checkout "${{ inputs.patches_commit }}"
  36. cd "$GITHUB_WORKSPACE"
  37. else
  38. git clone https://github.com/WildKernels/kernel_patches.git "$GITHUB_WORKSPACE/kernel_patches"
  39. fi
  40. if [ -n "${{ inputs.anykernel_commit }}" ]; then
  41. if [ -d "$GITHUB_WORKSPACE/AnyKernel3" ]; then rm -rf "$GITHUB_WORKSPACE/AnyKernel3"; fi
  42. git clone https://github.com/WildKernels/AnyKernel3.git "$GITHUB_WORKSPACE/AnyKernel3"
  43. cd "$GITHUB_WORKSPACE/AnyKernel3"
  44. git checkout "${{ inputs.anykernel_commit }}"
  45. cd "$GITHUB_WORKSPACE"
  46. elif [ ! -d "$GITHUB_WORKSPACE/AnyKernel3" ]; then
  47. git clone https://github.com/WildKernels/AnyKernel3.git -b gki-2.0 "$GITHUB_WORKSPACE/AnyKernel3"
  48. fi
  49. AOSP_MIRROR=https://android.googlesource.com
  50. BRANCH=main-kernel-2025
  51. git clone $AOSP_MIRROR/kernel/prebuilts/build-tools -b $BRANCH --depth 1 kernel-build-tools
  52. git clone $AOSP_MIRROR/platform/system/tools/mkbootimg -b $BRANCH --depth 1 mkbootimg
  53. echo "AVBTOOL=$GITHUB_WORKSPACE/kernel-build-tools/linux-x86/bin/avbtool" >> "$GITHUB_ENV"
  54. echo "MKBOOTIMG=$GITHUB_WORKSPACE/mkbootimg/mkbootimg.py" >> "$GITHUB_ENV"
  55. echo "UNPACK_BOOTIMG=$GITHUB_WORKSPACE/mkbootimg/unpack_bootimg.py" >> "$GITHUB_ENV"
  56. echo "BOOT_SIGN_KEY_PATH=$GITHUB_WORKSPACE/kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem" >> "$GITHUB_ENV"
  57. mkdir -p "$GITHUB_WORKSPACE/kernel-build-tools/linux-x86/share/avb"
  58. if [ -z "${BOOT_SIGN_KEY:-}" ]; then
  59. exit 1
  60. fi
  61. KEY_PATH="$GITHUB_WORKSPACE/kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem"
  62. printf '%s' "$BOOT_SIGN_KEY" > "$KEY_PATH"
  63. if ! head -n 1 "$KEY_PATH" | grep -q 'BEGIN'; then
  64. printf '%s' "$BOOT_SIGN_KEY" | base64 -d > "$KEY_PATH"
  65. fi
  66. chmod 600 "$KEY_PATH"