You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci(build): fix push failure by switching to --deps run
Using --deps all tries to push build-time-only dependencies (like bootstrap
seeds) of already-cached elements. Since these seeds are never pulled or cached
locally during a warm build, the push fails with 'not cached' error. Switching
to --deps run only pushes runtime dependencies of the assembled OCI image,
which are guaranteed to be present and cached locally.
Assisted-by: Gemini 3.5 Flash via GitHub Copilot
just bst artifact push --deps all ${{ matrix.element }}
190
+
just bst artifact push --deps run ${{ matrix.element }}
191
191
```
192
192
193
193
`generate-bst-ci-config` writes TWO configs:
194
194
- `buildstream-ci.conf` — used during the build phase: `push: false`, remote-execution enabled with **nested** `storage-service` (NOT top-level). casd stays in local disk mode.
195
195
- `buildstream-push.conf` — used for the post-build push only: `push: true`, no `storage-service`, no `source-caches`. Only the artifacts server block — `bst artifact push` does not use source-caches.
196
196
197
-
`--deps all`pushes the entire locally-built artifact tree, not just the top-level OCI element.
198
-
This is critical for cold starts: after a build that rebuilt many elements (e.g. after the cache
199
-
went cold), `--deps none` would leave all intermediate artifacts un-pushed and the next build
200
-
would be cold again. BST artifact push is idempotent — elements already in the remote CAS are
201
-
skipped, so `--deps all` is safe and fast on a warm cache.
197
+
`--deps run`pushes the entire locally-built and pulled runtime artifact tree, not just the top-level OCI element itself.
198
+
This is critical for warm builds and cold starts alike: after a build, `--deps none` would leave all intermediate runtime artifacts un-pushed. We use `run` instead of `all` because `all` tries to push build-time-only dependencies (like bootstrap seeds) which are skipped on warm builds and not cached locally, causing the push step to fail with a "not cached" error.
202
199
203
200
**Why `push: false` in buildstream-ci.conf does NOT mean the push step is a noop:**
204
201
They use different config files. The build phase uses `buildstream-ci.conf` (`push: false`) so
0 commit comments