From 965412377d8785056f2ca2c4c01a643f3f4982f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E7=A7=8B?= <3487467850@qq.com> Date: Tue, 17 Jan 2023 19:56:39 +0800 Subject: [PATCH] ci: use ccache (#78) --- ...le-Use-CCACHE-for-faster-compilation.patch | 48 +++++++++++++++++++ ...le-Use-CCACHE-for-faster-compilation.patch | 48 +++++++++++++++++++ .../workflows/build-WSA-5.10.117-kernel.yml | 13 ++++- .github/workflows/build-kernel-5.10.yml | 12 ++++- .github/workflows/build-kernel-5.15.yml | 12 ++++- 5 files changed, 129 insertions(+), 4 deletions(-) create mode 100644 .github/patches/5.10/0001-Makefile-Use-CCACHE-for-faster-compilation.patch create mode 100644 .github/patches/5.15/0001-Makefile-Use-CCACHE-for-faster-compilation.patch diff --git a/.github/patches/5.10/0001-Makefile-Use-CCACHE-for-faster-compilation.patch b/.github/patches/5.10/0001-Makefile-Use-CCACHE-for-faster-compilation.patch new file mode 100644 index 00000000..a5e3d994 --- /dev/null +++ b/.github/patches/5.10/0001-Makefile-Use-CCACHE-for-faster-compilation.patch @@ -0,0 +1,48 @@ +From f1e398602b989ac197cdd0fda4a7c4c323b03eb9 Mon Sep 17 00:00:00 2001 +From: DozNaka +Date: Mon, 11 Apr 2022 20:43:45 -0400 +Subject: [PATCH] Makefile: Use CCACHE for faster compilation + +--- + Makefile | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git a/Makefile b/Makefile +index e8b8d5894..51e8aac6e 100644 +--- a/Makefile ++++ b/Makefile +@@ -442,21 +442,21 @@ KBUILD_HOSTLDLIBS := $(HOST_LFS_LIBS) $(HOSTLDLIBS) + # Make variables (CC, etc...) + CPP = $(CC) -E + ifneq ($(LLVM),) +-CC = clang +-LD = ld.lld +-AR = llvm-ar ++CC = $(CCACHE) clang ++LD = $(CCACHE) ld.lld ++AR = $(CCACHE) llvm-ar + NM = llvm-nm +-OBJCOPY = llvm-objcopy +-OBJDUMP = llvm-objdump ++OBJCOPY = $(CCACHE) llvm-objcopy ++OBJDUMP = $(CCACHE) llvm-objdump + READELF = llvm-readelf + STRIP = llvm-strip + else +-CC = $(CROSS_COMPILE)gcc +-LD = $(CROSS_COMPILE)ld +-AR = $(CROSS_COMPILE)ar ++CC = $(CCACHE) $(CROSS_COMPILE)gcc ++LD = $(CCACHE) $(CROSS_COMPILE)ld ++AR = $(CCACHE) $(CROSS_COMPILE)ar + NM = $(CROSS_COMPILE)nm +-OBJCOPY = $(CROSS_COMPILE)objcopy +-OBJDUMP = $(CROSS_COMPILE)objdump ++OBJCOPY = $(CCACHE) $(CROSS_COMPILE)objcopy ++OBJDUMP = $(CCACHE) $(CROSS_COMPILE)objdump + READELF = $(CROSS_COMPILE)readelf + STRIP = $(CROSS_COMPILE)strip + endif +-- +2.37.2 + diff --git a/.github/patches/5.15/0001-Makefile-Use-CCACHE-for-faster-compilation.patch b/.github/patches/5.15/0001-Makefile-Use-CCACHE-for-faster-compilation.patch new file mode 100644 index 00000000..a5e3d994 --- /dev/null +++ b/.github/patches/5.15/0001-Makefile-Use-CCACHE-for-faster-compilation.patch @@ -0,0 +1,48 @@ +From f1e398602b989ac197cdd0fda4a7c4c323b03eb9 Mon Sep 17 00:00:00 2001 +From: DozNaka +Date: Mon, 11 Apr 2022 20:43:45 -0400 +Subject: [PATCH] Makefile: Use CCACHE for faster compilation + +--- + Makefile | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +diff --git a/Makefile b/Makefile +index e8b8d5894..51e8aac6e 100644 +--- a/Makefile ++++ b/Makefile +@@ -442,21 +442,21 @@ KBUILD_HOSTLDLIBS := $(HOST_LFS_LIBS) $(HOSTLDLIBS) + # Make variables (CC, etc...) + CPP = $(CC) -E + ifneq ($(LLVM),) +-CC = clang +-LD = ld.lld +-AR = llvm-ar ++CC = $(CCACHE) clang ++LD = $(CCACHE) ld.lld ++AR = $(CCACHE) llvm-ar + NM = llvm-nm +-OBJCOPY = llvm-objcopy +-OBJDUMP = llvm-objdump ++OBJCOPY = $(CCACHE) llvm-objcopy ++OBJDUMP = $(CCACHE) llvm-objdump + READELF = llvm-readelf + STRIP = llvm-strip + else +-CC = $(CROSS_COMPILE)gcc +-LD = $(CROSS_COMPILE)ld +-AR = $(CROSS_COMPILE)ar ++CC = $(CCACHE) $(CROSS_COMPILE)gcc ++LD = $(CCACHE) $(CROSS_COMPILE)ld ++AR = $(CCACHE) $(CROSS_COMPILE)ar + NM = $(CROSS_COMPILE)nm +-OBJCOPY = $(CROSS_COMPILE)objcopy +-OBJDUMP = $(CROSS_COMPILE)objdump ++OBJCOPY = $(CCACHE) $(CROSS_COMPILE)objcopy ++OBJDUMP = $(CCACHE) $(CROSS_COMPILE)objdump + READELF = $(CROSS_COMPILE)readelf + STRIP = $(CROSS_COMPILE)strip + endif +-- +2.37.2 + diff --git a/.github/workflows/build-WSA-5.10.117-kernel.yml b/.github/workflows/build-WSA-5.10.117-kernel.yml index 89f079e8..6456925a 100644 --- a/.github/workflows/build-WSA-5.10.117-kernel.yml +++ b/.github/workflows/build-WSA-5.10.117-kernel.yml @@ -29,11 +29,20 @@ jobs: name: Build WSA-Kernel-${{ matrix.version }} runs-on: ubuntu-18.04 + env: + CCACHE_COMPILERCHECK: "%compiler% -dumpmachine; %compiler% -dumpversion" + CCACHE_NOHASHDIR: "true" + CCACHE_MAXSIZE: "2G" + CCACHE_HARDLINK: "true" steps: + - uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ccache-WSA-Kernel-${{ matrix.version }} + append-timestamp: false - uses: actions/checkout@v3 with: path: KernelSU - + - name: Install LLVM run: | sudo apt install -y --no-install-recommends bc bison build-essential ca-certificates flex git gnupg libelf-dev libssl-dev lsb-release software-properties-common wget libncurses-dev binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu nuget @@ -79,7 +88,7 @@ jobs: cp configs/wsa/${{ matrix.make_config }}-5.10 $KERNEL_ROOT/.config echo "[+] 复制配置文件 configs/wsa/${{ matrix.make_config }}-5.10 到 $KERNEL_ROOT/.config" echo "执行: make -j`nproc` LLVM=1 ${{ matrix.kernel_make_cmd }}" - make -j`nproc` LLVM=1 ${{ matrix.kernel_make_cmd }} + make -j`nproc` LLVM=1 ${{ matrix.kernel_make_cmd }} CCACHE="/usr/bin/ccache" - name: Upload kernel-${{ matrix.arch }}-${{ matrix.version }} uses: actions/upload-artifact@v3 diff --git a/.github/workflows/build-kernel-5.10.yml b/.github/workflows/build-kernel-5.10.yml index b291dd9a..b3385da2 100644 --- a/.github/workflows/build-kernel-5.10.yml +++ b/.github/workflows/build-kernel-5.10.yml @@ -37,11 +37,21 @@ jobs: name: Build aarch64-${{ matrix.version }} runs-on: ubuntu-latest + env: + CCACHE_COMPILERCHECK: "%compiler% -dumpmachine; %compiler% -dumpversion" + CCACHE_NOHASHDIR: "true" + CCACHE_MAXSIZE: "2G" + CCACHE_HARDLINK: "true" steps: - uses: actions/checkout@v3 with: path: KernelSU fetch-depth: 0 + - uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ccache-aarch64-${{ matrix.version }} + append-timestamp: false + - name: Setup need_upload id: need_upload run: | @@ -93,7 +103,7 @@ jobs: - name: Build boot.img working-directory: android-kernel - run: BUILD_BOOT_IMG=1 SKIP_VENDOR_BOOT=1 KERNEL_BINARY=Image GKI_RAMDISK_PREBUILT_BINARY=out/ramdisk AVB_SIGN_BOOT_IMG=1 AVB_BOOT_PARTITION_SIZE=$((64*1024*1024)) AVB_BOOT_ALGORITHM=SHA256_RSA2048 AVB_BOOT_KEY=prebuilts/kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem BOOT_IMAGE_HEADER_VERSION=4 LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh + run: CCACHE="/usr/bin/ccache" BUILD_BOOT_IMG=1 SKIP_VENDOR_BOOT=1 KERNEL_BINARY=Image GKI_RAMDISK_PREBUILT_BINARY=out/ramdisk AVB_SIGN_BOOT_IMG=1 AVB_BOOT_PARTITION_SIZE=$((64*1024*1024)) AVB_BOOT_ALGORITHM=SHA256_RSA2048 AVB_BOOT_KEY=prebuilts/kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem BOOT_IMAGE_HEADER_VERSION=4 LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh - name: Build boot-lz4.img working-directory: android-kernel diff --git a/.github/workflows/build-kernel-5.15.yml b/.github/workflows/build-kernel-5.15.yml index ff69f188..84e76683 100644 --- a/.github/workflows/build-kernel-5.15.yml +++ b/.github/workflows/build-kernel-5.15.yml @@ -25,11 +25,21 @@ jobs: name: Build aarch64-${{ matrix.version }} runs-on: ubuntu-latest + env: + CCACHE_COMPILERCHECK: "%compiler% -dumpmachine; %compiler% -dumpversion" + CCACHE_NOHASHDIR: "true" + CCACHE_MAXSIZE: "2G" + CCACHE_HARDLINK: "true" steps: - uses: actions/checkout@v3 with: path: KernelSU fetch-depth: 0 + - uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ccache-aarch64-${{ matrix.version }} + append-timestamp: false + - name: Setup need_upload id: need_upload run: | @@ -81,7 +91,7 @@ jobs: - name: Build boot.img working-directory: android-kernel - run: BUILD_BOOT_IMG=1 SKIP_VENDOR_BOOT=1 KERNEL_BINARY=Image AVB_SIGN_BOOT_IMG=1 AVB_BOOT_PARTITION_SIZE=$((64*1024*1024)) AVB_BOOT_ALGORITHM=SHA256_RSA2048 AVB_BOOT_KEY=prebuilts/kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem BOOT_IMAGE_HEADER_VERSION=4 LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh + run: CCACHE="/usr/bin/ccache" BUILD_BOOT_IMG=1 SKIP_VENDOR_BOOT=1 KERNEL_BINARY=Image AVB_SIGN_BOOT_IMG=1 AVB_BOOT_PARTITION_SIZE=$((64*1024*1024)) AVB_BOOT_ALGORITHM=SHA256_RSA2048 AVB_BOOT_KEY=prebuilts/kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem BOOT_IMAGE_HEADER_VERSION=4 LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh - name: Upload boot.img uses: actions/upload-artifact@v3