Share release evidence across worktrees

d1aaa1348080 · AtlantisPleb · · parent 58bf417646d3

Share release evidence across worktrees

Deploy story

What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.

Not deployed through the forge lane

No push, promotion, build, or deploy receipt references this commit (receipts are scanned over a bounded recent window). Changes shipped by full node replacement carry their proof in the release gate receipt instead.

Changed files

  • modified ops/ci/release-smoke.sh
  • modified ops/deploy/build-image.sh
  • modified ops/production/preflight.sh
  • modified ops/relup-proof/common.sh
  • modified ops/relup-proof/install-proof.sh
  • modified ops/staging/publish-candidate.sh

Diff

6 files changed, +10 -7

ops/ci/release-smoke.sh modified +1 -1

@@ -29,7 +29,7 @@ cleanup() {

29 29
30 30
trap cleanup EXIT INT TERM
31 31
32
if [ ! -d "$repo_root/.git" ]; then
32
if [ "$(git -C "$repo_root" rev-parse --is-inside-work-tree 2>/dev/null || true)" != "true" ]; then
33 33
  echo "release smoke must run from a Git worktree" >&2
34 34
  exit 1
35 35
fi
ops/deploy/build-image.sh modified +2 -1

@@ -3,6 +3,7 @@ set -eu

3 3
4 4
script_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
5 5
repo_root=$(CDPATH= cd -- "$script_dir/../.." && pwd)
6
git_common_dir=$(git -C "$repo_root" rev-parse --path-format=absolute --git-common-dir)
6 7
7 8
if [ -n "$(git -C "$repo_root" status --porcelain --untracked-files=all)" ]; then
8 9
  echo "image build requires a clean worktree" >&2

@@ -13,7 +14,7 @@ git_sha=$(git -C "$repo_root" rev-parse --verify HEAD)

13 14
source_date_epoch=$(git -C "$repo_root" show -s --format=%ct "$git_sha")
14 15
platform=${OPENAGENTS_IMAGE_PLATFORM:-linux/amd64}
15 16
tag=${1:-"openagents:$git_sha"}
16
image_root="$repo_root/.git/openagents/images"
17
image_root="$git_common_dir/openagents/images"
17 18
result_path="$image_root/$git_sha.json"
18 19
iid_file=$(mktemp /tmp/openagents-image-iid.XXXXXX)
19 20
ops/production/preflight.sh modified +2 -2

@@ -9,8 +9,8 @@ resilience_report=${OPENAGENTS_STAGING_RESILIENCE_REPORT:-}

9 9
git_sha=$(git -C "$repo_root" rev-parse --verify HEAD)
10 10
git_common_dir=$(git -C "$repo_root" rev-parse --path-format=absolute --git-common-dir)
11 11
candidate="$git_common_dir/openagents/staging-candidates/$git_sha/candidate-manifest.json"
12
isolation="$repo_root/.git/openagents/staging-isolation/$git_sha.json"
13
rehearsal="$repo_root/.git/openagents/production-rehearsal/$git_sha.json"
12
isolation="$git_common_dir/openagents/staging-isolation/$git_sha.json"
13
rehearsal="$git_common_dir/openagents/production-rehearsal/$git_sha.json"
14 14
run_root=$(mktemp -d /tmp/openagents-production-preflight.XXXXXX)
15 15
16 16
cleanup() {
ops/relup-proof/common.sh modified +2 -1

@@ -3,6 +3,7 @@ set -eu

3 3
4 4
script_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
5 5
repo_root=$(CDPATH= cd -- "$script_dir/../.." && pwd)
6
git_common_dir=$(git -C "$repo_root" rev-parse --path-format=absolute --git-common-dir)
6 7
7 8
proof_key() {
8 9
  git_sha=$(git -C "$repo_root" rev-parse --verify HEAD)

@@ -30,7 +31,7 @@ proof_key() {

30 31
31 32
proof_root() {
32 33
  key=$(proof_key) || return $?
33
  printf '%s\n' "$repo_root/.git/openagents/relup-proof/$key"
34
  printf '%s\n' "$git_common_dir/openagents/relup-proof/$key"
34 35
}
35 36
36 37
require_proof_artifacts() {
ops/relup-proof/install-proof.sh modified +2 -1

@@ -26,7 +26,8 @@

26 26
set -eu
27 27
28 28
repo_root=$(CDPATH= cd -- "$(dirname -- "$0")/../.." && pwd)
29
pkg="${RELUP_PROOF_PACKAGE_DIR:-$repo_root/.git/openagents/relup-package}"
29
git_common_dir=$(git -C "$repo_root" rev-parse --path-format=absolute --git-common-dir)
30
pkg="${RELUP_PROOF_PACKAGE_DIR:-$git_common_dir/openagents/relup-package}"
30 31
node_name="${RELUP_PROOF_NODE:-openagents-relup-proof@127.0.0.1}"
31 32
32 33
if [ "${OPENAGENTS_RELUP_PROOF_DISPOSABLE:-}" != "1" ]; then
ops/staging/publish-candidate.sh modified +1 -1

@@ -288,7 +288,7 @@ ops/staging/generate-sbom.sh \

288 288
release_sha256=$(sha256sum "$candidate_temp/$archive_name" | cut -d ' ' -f 1)
289 289
sbom_sha256=$(sha256sum "$candidate_temp/sbom.cdx.json" | cut -d ' ' -f 1)
290 290
sbom_receipt_sha256=$(sha256sum "$candidate_temp/sbom.cdx.json.receipt" | cut -d ' ' -f 1)
291
gate_receipt="$repo_root/.git/openagents/release-gate-receipts/$git_sha.json"
291
gate_receipt="$git_common_dir/openagents/release-gate-receipts/$git_sha.json"
292 292
gate_receipt_sha256=$(sha256sum "$gate_receipt" | cut -d ' ' -f 1)
293 293
dockerfile_sha256=$(sha256sum "$repo_root/Dockerfile" | cut -d ' ' -f 1)
294 294
mix_lock_sha256=$(sha256sum "$repo_root/mix.lock" | cut -d ' ' -f 1)

This page updates live while a promote is in flight · changelog