[openwrt/openwrt] CI: kernel: use ccache to speedup workflow
LEDE Commits
lede-commits at lists.infradead.org
Sun Dec 4 07:37:28 PST 2022
ansuel pushed a commit to openwrt/openwrt.git, branch openwrt-21.02:
https://git.openwrt.org/9718dffd27ea9c15d30958eafef593aab929b7e8
commit 9718dffd27ea9c15d30958eafef593aab929b7e8
Author: Christian Marangi <ansuelsmth at gmail.com>
AuthorDate: Tue Oct 4 18:43:38 2022 +0200
CI: kernel: use ccache to speedup workflow
Use ccache to speedup kernel compilation.
Ccache dir is cached across each build test. To refresh ccache directory
we generate an hash of the kernel include files, that includes the
kernel versions of every kernel supported and the kernel compile
includes.
Signed-off-by: Christian Marangi <ansuelsmth at gmail.com>
(cherry picked from commit 137ba15e6ef31534a2002a02e69b774232f0b040)
---
.github/workflows/kernel.yml | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/.github/workflows/kernel.yml b/.github/workflows/kernel.yml
index 6c8ad68438..0ba8c27e2e 100644
--- a/.github/workflows/kernel.yml
+++ b/.github/workflows/kernel.yml
@@ -18,6 +18,7 @@ jobs:
outputs:
target: ${{ steps.find_targets.outputs.target }}
owner_lc: ${{ steps.lower_owner.outputs.owner_lc }}
+ ccache_hash: ${{ steps.ccache_hash.outputs.ccache_hash }}
steps:
- name: Checkout
@@ -30,6 +31,13 @@ jobs:
| tr '[:upper:]' '[:lower:]')
echo "::set-output name=owner_lc::$OWNER_LC"
+ - name: Generate ccache hash
+ id: ccache_hash
+ run: |
+ CCACHE_HASH=$(md5sum include/kernel-* | awk '{ print $1 }' \
+ | md5sum | awk '{ print $1 }')
+ echo "::set-output name=ccache_hash::$CCACHE_HASH"
+
- name: Set targets
id: find_targets
run: |
@@ -133,6 +141,14 @@ jobs:
path: openwrt/${{ env.TOOLCHAIN_FILE }}
key: ${{ env.TOOLCHAIN_FILE }}-${{ env.TOOLCHAIN_SHA256 }}
+ - name: Cache ccache
+ uses: actions/cache at v3
+ with:
+ path: openwrt/.ccache
+ key: ccache-kernel-${{ env.TARGET }}/${{ env.SUBTARGET }}-${{ needs.determine_targets.outputs.ccache_hash }}
+ restore-keys: |
+ ccache-kernel-${{ env.TARGET }}/${{ env.SUBTARGET }}-
+
- name: Download external toolchain
if: ${{ steps.cache-external-toolchain.outputs.cache-hit != 'true' }}
shell: su buildbot -c "sh -e {0}"
@@ -153,6 +169,7 @@ jobs:
echo CONFIG_ALL_KMODS=y >> .config
echo CONFIG_DEVEL=y >> .config
echo CONFIG_AUTOREMOVE=y >> .config
+ echo CONFIG_CCACHE=y >> .config
./scripts/ext-toolchain.sh \
--toolchain ${{ env.TOOLCHAIN_FILE }}/toolchain-* \
More information about the lede-commits
mailing list