From 9dd044820206171d9f7a81272a66bcb9ddac96ea Mon Sep 17 00:00:00 2001 From: marians Date: Mon, 3 Aug 2026 13:43:03 +0200 Subject: [PATCH 1/4] test: measure image build with registry layer cache Not for merge. Points push-to-registries at the dev orb from giantswarm/architect-orb#871 and enables cache: registry, to measure the cold-vs-warm difference on the ~5m30s image build. --- .circleci/workflows.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.circleci/workflows.yml b/.circleci/workflows.yml index 67ee3ab85..f20f1ac2e 100644 --- a/.circleci/workflows.yml +++ b/.circleci/workflows.yml @@ -5,7 +5,10 @@ # workflow in .circleci/config.yml merges into this file at pipeline runtime. version: 2.1 orbs: - architect: giantswarm/architect@9.6.0 + # TEST-ONLY (do not merge): dev orb from giantswarm/architect-orb#871, which adds + # the `cache` parameter used by push-to-registries below. Revert to a released + # `giantswarm/architect@9.x` before merging. + architect: giantswarm/architect@dev:buildkit-registry-cache jobs: # Self-contained Node build/test on a cimg/node executor (architect ships no @@ -97,6 +100,13 @@ workflows: name: push-to-registries dockerfile: packages/backend/Dockerfile platforms: linux/amd64 + # TEST-ONLY (do not merge): persist BuildKit's layer cache to + # gsoci.azurecr.io/giantswarm/backstage:buildcache. Without it every build + # re-runs the whole Dockerfile — apt build-essential, pip mkdocs, and a full + # `yarn workspaces focus --all --production` with node-gyp native compiles. + # Landing this permanently needs a devctl gen.ci.image change, since this file + # is generated. + cache: registry requires: - node-build filters: From c44a29283488b3b2199f5b8d15bfbded7ffab8f1 Mon Sep 17 00:00:00 2001 From: marians Date: Mon, 3 Aug 2026 13:53:40 +0200 Subject: [PATCH 2/4] test: touch backend source to exercise warm layer cache --- packages/backend/src/index.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index 53ad6cc57..8a5dd8fdd 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -106,3 +106,6 @@ if (process.env.PAGERDUTY_TOKEN) { } backend.start(); + +// Touched to exercise the warm layer cache (see PR #2012). Changes the built +// bundle but not any package.json, so skeleton.tar.gz stays byte-identical. From c97c506ea521c712fbc18e84bc56f0959614013e Mon Sep 17 00:00:00 2001 From: marians Date: Wed, 5 Aug 2026 16:22:23 +0200 Subject: [PATCH 3/4] test: re-run against reviewed orb revision --- packages/backend/src/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index 8a5dd8fdd..059fe2447 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -109,3 +109,5 @@ backend.start(); // Touched to exercise the warm layer cache (see PR #2012). Changes the built // bundle but not any package.json, so skeleton.tar.gz stays byte-identical. + +// Re-run against the reviewed orb (stable cache ref + export-failure warning). From 9dd6245d3d781c2de86b37f98abb560bd11decee Mon Sep 17 00:00:00 2001 From: marians Date: Wed, 5 Aug 2026 16:46:34 +0200 Subject: [PATCH 4/4] test: warm-cache validation on a stable base image --- packages/backend/src/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts index 059fe2447..c28901c84 100644 --- a/packages/backend/src/index.ts +++ b/packages/backend/src/index.ts @@ -111,3 +111,5 @@ backend.start(); // bundle but not any package.json, so skeleton.tar.gz stays byte-identical. // Re-run against the reviewed orb (stable cache ref + export-failure warning). + +// Warm-cache validation run: base image stable since 08:39 UTC.