CI: build: split cache ccache in separate restore and save jobs
authorChristian Marangi <ansuelsmth@gmail.com>
Sat, 27 May 2023 15:25:29 +0000 (17:25 +0200)
committerChristian Marangi <ansuelsmth@gmail.com>
Tue, 24 Oct 2023 15:12:03 +0000 (17:12 +0200)
Split caching ccache in separate restore and save jobs to always refresh
the ccache across different runs. Currently if a key is restored, cache
is not saved resulting in a less useful ccache that benefits from
multiple runs.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
(cherry picked from commit 6321361c6b13a37b0cfa279a51a0cf8239a7852c)

.github/workflows/build.yml

index 6948caf11effb101d2663ae11fc6f4eeec448ee7..31da7fa7ab5290778c9bb0eeaae5ae45ddb0c9c1 100644 (file)
@@ -247,8 +247,9 @@ jobs:
           ./scripts/feeds update -a
           ./scripts/feeds install -a
 
-      - name: Cache ccache
-        uses: actions/cache@v3
+      - name: Restore ccache cache
+        id: restore-ccache-cache
+        uses: actions/cache/restore@v3
         with:
           path: openwrt/.ccache
           key: ccache-kernel-${{ inputs.target }}/${{ inputs.subtarget }}-${{ hashFiles('openwrt/include/kernel-**') }}
@@ -474,6 +475,12 @@ jobs:
           name: ${{ inputs.target }}-${{ inputs.subtarget }}-logs
           path: "openwrt/logs"
 
+      - name: Save ccache cache
+        uses: actions/cache/save@v3
+        with:
+          path: openwrt/.ccache
+          key: ${{ steps.restore-ccache-cache.outputs.cache-primary-key }}
+
       - name: Find external toolchain name
         id: get-toolchain-name
         if: inputs.upload_external_toolchain == true