From e718cd4c4a5290ee9a989a70fe9e6f5b96a3a578 Mon Sep 17 00:00:00 2001 From: yusing Date: Thu, 22 Jan 2026 16:23:12 +0800 Subject: [PATCH] feat(ci): separate cache for different tags; utilize gha cache --- .github/workflows/docker-image.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index bc8bef41..5a78c714 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -59,13 +59,17 @@ jobs: run: | if [ "${GITHUB_REF_TYPE}" = "tag" ]; then version="${GITHUB_REF_NAME}" + cache_variant="release" elif [ "${GITHUB_REF_NAME}" = "main" ] || [ "${GITHUB_REF_NAME}" = "compat" ]; then git fetch --tags origin main version="$(git describe --tags --abbrev=0 origin/main 2>/dev/null || git describe --tags --abbrev=0 main 2>/dev/null || echo v0.0.0)" + cache_variant="${GITHUB_REF_NAME}" else version="v$(date -u +'%Y%m%d-%H%M')" + cache_variant="nightly" fi echo "VERSION_FOR_BUILD=$version" >> $GITHUB_ENV + echo "CACHE_VARIANT=$cache_variant" >> $GITHUB_ENV if [ "${GITHUB_REF_TYPE}" = "branch" ]; then echo "BRANCH_FOR_BUILD=${GITHUB_REF_NAME}" >> $GITHUB_ENV else @@ -102,11 +106,11 @@ jobs: file: ${{ env.DOCKERFILE }} outputs: type=image,name=${{ env.REGISTRY }}/${{ inputs.image_name }},push-by-digest=true,name-canonical=true,push=true cache-from: | - type=registry,ref=${{ env.REGISTRY }}/${{ inputs.image_name }}:buildcache-${{ env.PLATFORM_PAIR }} - # type=gha,scope=${{ github.workflow }}-${{ env.PLATFORM_PAIR }} + type=gha,scope=${{ github.workflow }}-${{ env.CACHE_VARIANT }}-${{ env.PLATFORM_PAIR }} + type=registry,ref=${{ env.REGISTRY }}/${{ inputs.image_name }}:buildcache-${{ env.CACHE_VARIANT }}-${{ env.PLATFORM_PAIR }} cache-to: | - type=registry,ref=${{ env.REGISTRY }}/${{ inputs.image_name }}:buildcache-${{ env.PLATFORM_PAIR }},mode=max - # type=gha,scope=${{ github.workflow }}-${{ env.PLATFORM_PAIR }},mode=max + type=gha,scope=${{ github.workflow }}-${{ env.CACHE_VARIANT }}-${{ env.PLATFORM_PAIR }},mode=max + type=registry,ref=${{ env.REGISTRY }}/${{ inputs.image_name }}:buildcache-${{ env.CACHE_VARIANT }}-${{ env.PLATFORM_PAIR }},mode=max build-args: | VERSION=${{ env.VERSION_FOR_BUILD }} MAKE_ARGS=${{ env.MAKE_ARGS }}