mirror of
https://github.com/openwrt/openwrt.git
synced 2025-04-16 15:29:48 +00:00
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@gmail.com> (cherry picked from commit 137ba15e6ef31534a2002a02e69b774232f0b040)
This commit is contained in:
parent
8bbaa486cb
commit
431875b3df
17
.github/workflows/kernel.yml
vendored
17
.github/workflows/kernel.yml
vendored
@ -14,6 +14,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
|
||||
@ -26,6 +27,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: |
|
||||
@ -129,6 +137,14 @@ jobs:
|
||||
path: openwrt/${{ env.TOOLCHAIN_FILE }}
|
||||
key: ${{ env.TOOLCHAIN_FILE }}-${{ env.TOOLCHAIN_SHA256 }}
|
||||
|
||||
- name: Cache ccache
|
||||
uses: actions/cache@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}"
|
||||
@ -149,6 +165,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-* \
|
||||
|
Loading…
x
Reference in New Issue
Block a user