mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2024-12-24 15:43:25 +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>
This commit is contained in:
parent
2781e3839e
commit
137ba15e6e
17
.github/workflows/kernel.yml
vendored
17
.github/workflows/kernel.yml
vendored
@ -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@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-* \
|
||||
|
Loading…
Reference in New Issue
Block a user