mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-21 00:05:49 +02:00
docs(runner): pass resolved lock digest in image commands
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
6a7a006b07
commit
0dea682031
2 files changed
+11
-8
No files matched your search
@@ -122,17 +122,16 @@ lockfile. Resolve the complete workspace manifest graph in the build context
|
||||
before invoking Docker, matching CI when a source commit precedes the lockfile
|
||||
bot. The trusted workflow supplies this resolved lockfile as an immutable artifact.
|
||||
The complete resolved lockfile must match `PAPERCLIP_RUNNER_LOCK_SHA256` before
|
||||
package installation or lifecycle execution. Review and refresh that digest
|
||||
with source dependency changes; registry-time resolution drift fails closed.
|
||||
package installation or lifecycle execution. Compute that digest from the
|
||||
resolved build lock; registry-time resolution drift fails closed.
|
||||
The Product E2E workflow resolves one lockfile before the image build. It
|
||||
verifies the downloaded artifact, then passes that artifact's SHA-256 as the
|
||||
`PAPERCLIP_RUNNER_LOCK_SHA256` build argument. The Dockerfile checks the resolved
|
||||
lock against this value before installation. The fixed Dockerfile default is
|
||||
for standalone builds; it must not replace a campaign's verified lock digest.
|
||||
Refresh the default from the clean tracked lockfile using the exact
|
||||
`pnpm install --resolution-only --ignore-scripts --no-frozen-lockfile` command,
|
||||
and verify a second resolution preserves the digest. A lockfile left by a
|
||||
filtered or incremental install can retain stale importer patch identities.
|
||||
lock against this value before installation. Standalone builds must also pass
|
||||
the resolved lock's digest, as shown above; the Dockerfile has no default.
|
||||
Use the exact `pnpm install --resolution-only --ignore-scripts --no-frozen-lockfile`
|
||||
command. A lockfile left by a filtered or incremental install can retain stale
|
||||
importer patch identities.
|
||||
Refresh exact runtime versions and qualification digests together; do not
|
||||
download dependencies when a task starts.
|
||||
|
||||
|
||||
@@ -609,6 +609,9 @@ Use the immutable digest printed by the `Publish verified Daytona image` job,
|
||||
or publish the current source locally:
|
||||
|
||||
```bash
|
||||
# Resolve the build lock without committing the bot-owned root lockfile.
|
||||
pnpm install --resolution-only --ignore-scripts --no-frozen-lockfile
|
||||
lock_sha="$(shasum -a 256 pnpm-lock.yaml | cut -d ' ' -f 1)"
|
||||
content_id="$(pnpm --silent test:e2e:runner:image-id)"
|
||||
source_revision="$(git rev-parse HEAD)"
|
||||
image="ghcr.io/paperclipai/paperclip-daytona-runner:e2e-content-${content_id}"
|
||||
@@ -617,6 +620,7 @@ if ! docker buildx imagetools inspect "$image" >/dev/null 2>&1; then
|
||||
--platform linux/amd64 \
|
||||
--build-arg "PAPERCLIP_RUNNER_CONTENT_ID=${content_id}" \
|
||||
--build-arg "PAPERCLIP_RUNNER_SOURCE_REVISION=${source_revision}" \
|
||||
--build-arg "PAPERCLIP_RUNNER_LOCK_SHA256=${lock_sha}" \
|
||||
--file docker/daytona-runner/Dockerfile \
|
||||
--tag "$image" \
|
||||
--push \
|
||||
|
||||
Reference in new issue
Block a user