action.yml 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. name: 'Build Kernel'
  2. description: 'Builds kernel using legacy build.sh or Bazel (kleaf)'
  3. runs:
  4. using: composite
  5. steps:
  6. - name: 'Build Kernel'
  7. shell: bash
  8. working-directory: ${{ github.workspace }}/kernel
  9. run: |
  10. set -euo pipefail
  11. GKI_KCONFIG_FRAGMENT_PATH="${{ github.workspace }}/wild_gki.fragment"
  12. GKI_DEFCONFIG_WRAPPER_PATH="${{ github.workspace }}/wild_gki.wrap.sh"
  13. cat > "${GKI_DEFCONFIG_WRAPPER_PATH}" <<EOF
  14. append_cmd POST_DEFCONFIG_CMDS 'if [ -f "${GKI_KCONFIG_FRAGMENT_PATH}" ]; then \${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -O \${OUT_DIR} \${OUT_DIR}/.config "${GKI_KCONFIG_FRAGMENT_PATH}"; fi && (cd \${KERNEL_DIR} && make O=\${OUT_DIR} olddefconfig)'
  15. EOF
  16. # Override expensive GKI build.sh artifact defaults we do not need in CI.
  17. GKI_BUILD_CONFIG_FRAGMENT_PATH="${{ github.workspace }}/gki_build_overrides.fragment"
  18. cat > "${GKI_BUILD_CONFIG_FRAGMENT_PATH}" <<'EOF'
  19. BUILD_GKI_ARTIFACTS=
  20. BUILD_GKI_CERTIFICATION_TOOLS=0
  21. BUILD_SYSTEM_DLKM=0
  22. # Skip heavy packaging steps we don't need in CI
  23. SKIP_VENDOR_BOOT=1
  24. SKIP_EXT_MODULES=1
  25. SKIP_CP_KERNEL_HDR=1
  26. SKIP_MRPROPER=1
  27. EOF
  28. if [ -f "build/build.sh" ]; then
  29. #SKIP_MRPROPER=1 \
  30. LTO=thin \
  31. GKI_DEFCONFIG_FRAGMENT="${GKI_DEFCONFIG_WRAPPER_PATH}" \
  32. GKI_BUILD_CONFIG_FRAGMENT="${GKI_BUILD_CONFIG_FRAGMENT_PATH}" \
  33. BUILD_CONFIG=common/build.config.gki.aarch64 \
  34. build/build.sh -j"$(nproc)" \
  35. CC="$CC" \
  36. CXX="$CXX" \
  37. HOSTCC="$HOSTCC" \
  38. HOSTCXX="$HOSTCXX" \
  39. LD="$LD" \
  40. HOSTLD="$HOSTLD"
  41. else
  42. cp "${{ github.workspace }}/wild_gki.fragment" common/arch/arm64/configs/wild_gki.fragment
  43. tools/bazel build \
  44. --linkopt="--thinlto-cache-dir=/home/runner/.ld_cache" \
  45. --config=fast \
  46. --defconfig_fragment=//common:arch/arm64/configs/wild_gki.fragment \
  47. --disk_cache="$BAZEL_CACHE_DIR" \
  48. //common:kernel_aarch64
  49. fi