Skip to content

Commit

Permalink
CI: kernel: use ccache to speedup workflow
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
Ansuel committed Oct 6, 2022
1 parent 2781e38 commit 137ba15
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions .github/workflows/kernel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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: |
Expand Down Expand Up @@ -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}"
Expand All @@ -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-* \
Expand Down

0 comments on commit 137ba15

Please sign in to comment.