| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- name: 'Build Kernel'
- description: 'Builds kernel using legacy build.sh or Bazel (kleaf)'
- runs:
- using: composite
- steps:
- - shell: bash
- working-directory: ${{ github.workspace }}/kernel
- run: |
- set -euo pipefail
- # Install ccache with ECS by cctv18
- echo "Install ccache with ECS"
- curl -LfsS --retry 5 --retry-delay 5 --retry-all-errors --connect-timeout 30 --tcp-fastopen -H "User-Agent: Mozilla/5.0" "https://github.com/WildKernels/kernel_patches/raw/refs/heads/main/ccache/ccache-x86-64" -o ccache
- sudo cp -f ./ccache /usr/bin/ccache
- sudo chmod +x /usr/bin/ccache
- rm -f ./ccache
- echo "/usr/lib/ccache" >> $GITHUB_PATH
- export CCACHE_DIR="$GITHUB_WORKSPACE/.ccache"
- export LDCACHE_DIR="${{ github.workspace }}/.ld_cache"
- export CC="ccache clang"
- export CXX="ccache clang++"
- export HOSTCC="ccache clang"
- export HOSTCXX="ccache clang++"
- export CCACHE_MAXSIZE=10G
- export CCACHE_COMPILERCHECK=content
- export CCACHE_BASEDIR="$GITHUB_WORKSPACE"
- export CCACHE_NOHASHDIR=true
- export CCACHE_COMPRESSION=true
- export CCACHE_COMPRESSION_LEVEL=3
- export CCACHE_DIRECT=true
- export CCACHE_FILE_CLONE=true
- export CCACHE_INODE_CACHE=true
- CCACHE_IS_KERNEL_COMPILING=true
- export CCACHE_UMASK=002
- export CCACHE_SLOPPINESS="file_macro,time_macros,include_file_mtime,include_file_ctime,pch_defines,system_headers,locale"
- if ccache --help 2>&1 | grep -q 'depend_mode'; then
- export CCACHE_DEPEND=true
- fi
- echo "✅ ccache environment variables set"
- ccache -p
- if [ -f "build/build.sh" ]; then
- SKIP_MRPROPER=1 LTO=thin SKIP_EXT_MODULES=1 SKIP_CP_KERNEL_HDR=1 GKI_DEFCONFIG_FRAGMENT="$GITHUB_WORKSPACE/wild_gki.fragment" BUILD_CONFIG=common/build.config.gki.aarch64 CC="$CC" CXX="$CXX" build/build.sh
- else
- cp "$GITHUB_WORKSPACE/wild_gki.fragment" common/arch/arm64/configs/wild_gki.fragment
- tools/bazel build --config=release --notrim --defconfig_fragment=//common:arch/arm64/configs/wild_gki.fragment --cache_dir=$GITHUB_WORKSPACE/kernel/.cache/bazel //common:kernel_aarch64
- fi
- echo "Clear Temporary cache files..."
- ccache -c
-
- echo "Perform cache eviction!"
- # 3h = 10800s using seconds to support older ccache
- ccache --evict-older-than 10800s
|