Skip to content

ci(stagex): build parser_http_server and parser_grpc_server images - #447

Draft
pepe-anchor wants to merge 1 commit into
mainfrom
pepefigueira/prs-581-02-stagex-multitarget
Draft

ci(stagex): build parser_http_server and parser_grpc_server images#447
pepe-anchor wants to merge 1 commit into
mainfrom
pepefigueira/prs-581-02-stagex-multitarget

Conversation

@pepe-anchor

Copy link
Copy Markdown
Contributor

Why

PRS-581 deploys parser_http_server as the TVC pivot. The stagex "TVC deployment details" step hardcodes parser_app, so it is the only binary that ever gets a reproducible executable digest and a paste-ready deploy block. Without this, the pivot cannot be deployed or probed at all, which blocks the /dev/nsm reachability probe and every later step in the stack.

Landing it early so image builds are never the thing holding the stack up.

What

  • Adds parser_grpc_server and parser_http_server to the stagex build matrix.
  • Generalizes the deployment-details step over the matrix target: TARGET_NAME env, per-target container URL, per-target extract container and binary path, per-target deploy-md and release-note sentinels so parallel matrix legs cannot clobber each other's release body edits.
  • Adds images/parser_http_server/Containerfile, mirroring parser_app's. It keeps --features "vsock ${CHAIN_FEATURES}", which is load-bearing: vsock switches qos_core::EPHEMERAL_KEY_FILE to the in-enclave path, and without it the deployed pivot panics at startup and TVC reports 0 healthy replicas.

Two changes from the x402 branch were deliberately NOT taken, because they belong to other PRs:

  • the PR-label rename ci:stagex to stagex. Main's label is kept.
  • qos_version="v2026.2.6". Main's 0.12.0 is kept; the QOS bump is its own PR in this stack.

Test evidence

The stagex path only runs on a labelled PR, so this needs the ci:stagex label to be validated. What was verified locally:

python3 -c "import yaml; yaml.safe_load(open('.github/workflows/stagex.yml'))"  -> parses
grep 'label.name' stagex.yml  -> 'ci:stagex'  (unchanged from main)
grep -c 'v2026.2.6' stagex.yml -> 0

I have NOT run the stagex build itself. Please add ci:stagex and confirm all matrix legs go green, including the two new ones, before merging.

Rollback

Revert the commit. CI-only change plus one new Containerfile; nothing is deployed by merging it.

Linear

PRS-581

Stack position: independent of the rest of the stack, based on main. Can merge in any order.

🤖 Generated with Claude Code

The TVC deployment-details step hardcoded parser_app, so the only binary
that ever got a reproducible digest and a paste-ready deploy block was
parser_app. The pivot we are switching to (parser_http_server) needs the
same treatment before it can be deployed or probed.

Generalize the extraction over the matrix target and add the two missing
images. QOS version stays at 0.12.0 here; the bump is PRS-581 PR 7.

Co-Authored-By: Claude <noreply@anthropic.com>
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.

1 participant