Preserve the multi-platform CLI build cache during validation

This commit is contained in:
vorotamoroz
2026-10-14 10:17:59 +00:00
parent 8892f659f6
commit 4a51253299
3 changed files with 15 additions and 4 deletions
+5 -2
View File
@@ -58,8 +58,11 @@ jobs:
load: true
tags: livesync-cli
platforms: linux/amd64
cache-from: type=gha,scope=cli-image
cache-to: type=gha,scope=cli-image,mode=max
cache-from: |
type=gha,scope=cli-image-amd64
type=gha,scope=cli-image
# Keep amd64 validation from replacing the cache for both platforms.
cache-to: type=gha,scope=cli-image-amd64,mode=max
- name: Setup Node.js
uses: actions/setup-node@v5
+3 -1
View File
@@ -129,5 +129,7 @@ jobs:
push: ${{ steps.meta.outputs.push }}
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha,scope=cli-image
cache-from: |
type=gha,scope=cli-image-amd64
type=gha,scope=cli-image
cache-to: type=gha,scope=cli-image,mode=max
+7 -1
View File
@@ -138,6 +138,12 @@ describe("CLI CI selection", () => {
step.uses?.startsWith("docker/build-push-action@")
);
expect(publishBuild?.with?.["cache-from"]).toBe(build?.with?.["cache-from"]);
expect(publishBuild?.with?.["cache-to"]).toBe(build?.with?.["cache-to"]);
const validationScope = String(build?.with?.["cache-to"]).match(/scope=([^,\s]+)/)?.[1];
const publicationScope = String(publishBuild?.with?.["cache-to"]).match(/scope=([^,\s]+)/)?.[1];
expect(validationScope).toBeDefined();
expect(publicationScope).toBeDefined();
expect(publicationScope).not.toBe(validationScope);
expect(publishBuild?.with?.["cache-from"]).toContain(`scope=${validationScope}`);
expect(publishBuild?.with?.["cache-from"]).toContain(`scope=${publicationScope}`);
});
});