| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- name: 'Build Kernel'
- description: 'Builds kernel using legacy build.sh or Bazel (kleaf)'
- runs:
- using: composite
- steps:
- - name: 'Build Kernel'
- shell: bash
- working-directory: ${{ github.workspace }}/kernel
- run: |
- set -euo pipefail
- GKI_KCONFIG_FRAGMENT_PATH="${{ github.workspace }}/wild_gki.fragment"
- GKI_DEFCONFIG_WRAPPER_PATH="${{ github.workspace }}/wild_gki.wrap.sh"
- cat > "${GKI_DEFCONFIG_WRAPPER_PATH}" <<EOF
- 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)'
- EOF
- # Override expensive GKI build.sh artifact defaults we do not need in CI.
- GKI_BUILD_CONFIG_FRAGMENT_PATH="${{ github.workspace }}/gki_build_overrides.fragment"
- cat > "${GKI_BUILD_CONFIG_FRAGMENT_PATH}" <<'EOF'
- BUILD_GKI_ARTIFACTS=
- BUILD_GKI_CERTIFICATION_TOOLS=0
- BUILD_SYSTEM_DLKM=0
- # Skip heavy packaging steps we don't need in CI
- SKIP_VENDOR_BOOT=1
- SKIP_EXT_MODULES=1
- SKIP_CP_KERNEL_HDR=1
- SKIP_MRPROPER=1
- EOF
- if [ -f "build/build.sh" ]; then
- #SKIP_MRPROPER=1 \
- LTO=thin \
- GKI_DEFCONFIG_FRAGMENT="${GKI_DEFCONFIG_WRAPPER_PATH}" \
- GKI_BUILD_CONFIG_FRAGMENT="${GKI_BUILD_CONFIG_FRAGMENT_PATH}" \
- BUILD_CONFIG=common/build.config.gki.aarch64 \
- build/build.sh -j"$(nproc)" \
- CC="$CC" \
- CXX="$CXX" \
- HOSTCC="$HOSTCC" \
- HOSTCXX="$HOSTCXX" \
- LD="$LD" \
- HOSTLD="$HOSTLD"
- else
- cp "${{ github.workspace }}/wild_gki.fragment" common/arch/arm64/configs/wild_gki.fragment
- tools/bazel build \
- --linkopt="--thinlto-cache-dir=/home/runner/.ld_cache" \
- --config=fast \
- --defconfig_fragment=//common:arch/arm64/configs/wild_gki.fragment \
- --disk_cache="$BAZEL_CACHE_DIR" \
- //common:kernel_aarch64
- fi
|