ci: switch buildx cache-to to mode=min
mode=max was re-uploading the bun install cache mount (~40–60s per build, ~90s combined for api-core + web) to the Gitea OCI registry on every push, even when source hadn't changed. That single export accounts for most of the delta between 1-minute and 3-minute deploys. mode=min only exports the final stage's layers. The trade-off is a few-second tax on cold buildkitd starts (the installer stage no longer warms from registry cache), but the per-push savings dwarf it. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -80,8 +80,15 @@ jobs:
|
||||
npmrc=/tmp/.npmrc
|
||||
cache-from: |
|
||||
type=registry,ref=git.unom.io/${{ gitea.repository }}/api-core:cache
|
||||
# mode=min: export only the final stage's layers. mode=max
|
||||
# was re-uploading the bun-install cache mount (~40–60s) to
|
||||
# the Gitea OCI registry on every push, even no-op deploys.
|
||||
# Trade-off: a cold buildkitd will re-run `bun install` from
|
||||
# scratch on the installer stage instead of importing it
|
||||
# from registry cache — a few-second tax in exchange for
|
||||
# not paying the export tax on every run.
|
||||
cache-to: |
|
||||
type=registry,ref=git.unom.io/${{ gitea.repository }}/api-core:cache,mode=max
|
||||
type=registry,ref=git.unom.io/${{ gitea.repository }}/api-core:cache,mode=min
|
||||
|
||||
deploy-api-core:
|
||||
runs-on: ubuntu-24.04
|
||||
@@ -196,8 +203,9 @@ jobs:
|
||||
npmrc=/tmp/.npmrc
|
||||
cache-from: |
|
||||
type=registry,ref=git.unom.io/${{ gitea.repository }}/web:cache
|
||||
# See the api-core cache-to block above for the mode=min rationale.
|
||||
cache-to: |
|
||||
type=registry,ref=git.unom.io/${{ gitea.repository }}/web:cache,mode=max
|
||||
type=registry,ref=git.unom.io/${{ gitea.repository }}/web:cache,mode=min
|
||||
|
||||
deploy-web:
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
Reference in New Issue
Block a user