Skip to content

ci(cd): the build fact names the whole promoted set — tester, portal and migration digests from this run's version tag - #2718

Merged
rbuergi merged 2 commits into
mainfrom
ci/build-fact-portal-digest
Aug 30, 2026
Merged

rbuergi merged 2 commits into
mainfrom
ci/build-fact-portal-digest

Conversation

@rbuergi

@rbuergi rbuergi commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Why

Plugins' PlatformPinUpdater moves only MW_IMAGE_DIGEST. With Plugins #940 (module lane compiles against the portal image) the portal pin (MW_PORTAL_IMAGE_DIGEST + the platform-image-digest literals) must move with it — Plugins #944 — which needs the CD build fact to carry the promoted portal digest. This is the core half.

What

Sign and POST the build fact now resolves three digests from this run's version tag (<image>:<version>, the tag the promote job writes for the set) — never :main, which moves the moment another run promotes:

  • image/digest — mw-plugin-test (as before, but race-free)
  • portalImage/portalDigest — memex-portal-ai
  • migrationImage/migrationDigest — memex-migration

Each unresolved digest is RED (::error + exit 1, the guard's pairing holds: 6/6). Backward compatible: the inbox watcher's ParseBuild reads known fields with TryGetProperty and ignores the rest.

Verified

PlatformReleaseNotifyGuard + UpstreamBuildGateGuard + shell guards 10/10 (Release -warnaserror, 0 errors); check-workflow-shell.py 0 live; body shape checked with jq.

🤖 Generated with Claude Code

…and migration digests, resolved from this run's version tag

Plugins' PlatformPinUpdater moves only the tester pin; with Plugins #940 the portal pin
(MW_PORTAL_IMAGE_DIGEST + the platform-image-digest literals) must move with it, which
needs the fact to carry the promoted portal digest. All three are resolved from
<image>:<version> — the tag the promote job writes for this set — never :main, which
moves the moment another run promotes and could name a set this run did not build.
Extra fields are ignored by the inbox watcher's ParseBuild (TryGetProperty on the known
ones), so the change is backward compatible.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 30, 2026 04:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the main CD workflow’s “build fact” payload so downstream consumers can pin a coherent promoted image set (tester, portal, migration) using digests resolved from the current run’s version tag rather than the moving :main tag.

Changes:

  • Resolve mw-plugin-test, memex-portal-ai, and memex-migration digests from :<version> and include them in the signed webhook body.
  • Fail the job if any of the required digests cannot be resolved, preventing delivery of a fact that references non-existent pins.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/main-cd.yml Resolved
… empty under set -e, and the guard checks the sha256: shape

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

693 tests  ±0   501 ✅ ±0   4m 36s ⏱️ -1s
  5 suites ±0   192 💤 ±0 
  5 files   ±0     0 ❌ ±0 

Results for commit 2044dbc. ± Comparison against base commit 46b6b22.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 2)

941 tests  ±0   941 ✅ ±0   5m 10s ⏱️ +21s
  6 suites ±0     0 💤 ±0 
  6 files   ±0     0 ❌ ±0 

Results for commit 2044dbc. ± Comparison against base commit 46b6b22.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 5)

1 532 tests  ±0   1 532 ✅ ±0   6m 0s ⏱️ -18s
    8 suites ±0       0 💤 ±0 
    8 files   ±0       0 ❌ ±0 

Results for commit 2044dbc. ± Comparison against base commit 46b6b22.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 0)

913 tests  ±0   913 ✅ ±0   5m 14s ⏱️ -3s
  6 suites ±0     0 💤 ±0 
  6 files   ±0     0 ❌ ±0 

Results for commit 2044dbc. ± Comparison against base commit 46b6b22.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 4)

   10 files  ±0     10 suites  ±0   6m 15s ⏱️ +56s
3 463 tests ±0  3 463 ✅ ±0  0 💤 ±0  0 ❌ ±0 
4 101 runs  ±0  4 101 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 2044dbc. ± Comparison against base commit 46b6b22.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 1)

818 tests  ±0   814 ✅ ±0   7m 27s ⏱️ +3s
  6 suites ±0     4 💤 ±0 
  6 files   ±0     0 ❌ ±0 

Results for commit 2044dbc. ± Comparison against base commit 46b6b22.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results

   41 files  ±0     41 suites  ±0   34m 45s ⏱️ + 1m 0s
8 360 tests ±0  8 164 ✅ ±0  196 💤 ±0  0 ❌ ±0 
8 998 runs  ±0  8 802 ✅ ±0  196 💤 ±0  0 ❌ ±0 

Results for commit 2044dbc. ± Comparison against base commit 46b6b22.

@rbuergi
rbuergi merged commit fa35046 into main Aug 30, 2026
24 checks passed
@rbuergi
rbuergi deleted the ci/build-fact-portal-digest branch August 30, 2026 04:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants