Skip to content

ci(build): add CommandBox install->serve smoke leg for the ForgeBox path#3202

Merged
bpamiri merged 1 commit into
developfrom
peter/ci-commandbox-install-smoke
Jun 13, 2026
Merged

ci(build): add CommandBox install->serve smoke leg for the ForgeBox path#3202
bpamiri merged 1 commit into
developfrom
peter/ci-commandbox-install-smoke

Conversation

@bpamiri

@bpamiri bpamiri commented Jun 13, 2026

Copy link
Copy Markdown
Collaborator

What

Adds a CI leg (.github/workflows/commandbox-install-smoke.yml) that exercises the built ForgeBox/CommandBox install→serve journey on every PR that touches the build pipeline — the durability net for the path-repair campaign.

The ForgeBox channel was published but broke end to end and stayed broken undetected for weeks, because nothing in CI installs the built packages the way a CommandBox user does. ForgeBox publishing is stable-only and asynchronous, so a packaging regression only surfaces in production long after the offending commit lands. This leg closes that gap.

How

  1. Builds the base + core packages from the tree (tools/build/scripts/prepare-base.sh + prepare-core.sh) — the artifact this PR would publish, not the lagging ForgeBox copy.
  2. Stages them as box install wheels-base-template lands them: base scaffold at the app root, wheels-core at vendor/wheels/ per the box.json installPaths (satisfying the dependency from the local core build).
  3. Boots under the ortussolutions/commandbox image (CommandBox is the runtime on this path, not LuCLI — same image/source as release.yml's ForgeBox publish) and asserts:

Pre-boot structural guards name the campaign's packaging defects (#3173 placeholders, #3174 db/, root-view generation) so a regression is reported precisely instead of as an opaque boot failure.

Gated on: tools/build/**, cli/lucli/templates/app/**, tools/ci/smoke-env.sh, and the workflow file.

Ordering — this leg gates on two sibling PRs merging

This leg tests the FIXED pipeline:

Once #3196 lands on develop, this job goes green.

Verification (local, CommandBox 6.3.3 / ortussolutions/commandbox:latest)

  • Keystone composed (fixed tree): all six smoke-env.sh probes PASS in production (failures=0); dev journey passes (GET / 200, /wheels/info 200, /main/index 200, db/ present) with no edits. Validated inside a long-lived container mimicking the GHA container:box server start daemonizes and persists across steps.
  • Unfixed develop artifact: container exits 1 with Invalid slug detected. Slugs can only contain letters, numbers, underscores, and hyphens — boot status 000. The gate is real.

The PR contains only the workflow file; the sibling-branch changes were composed locally for verification and then reset.

Refs #3173, #3174, #3176, #3177 (durability net)
Closes #3201

🤖 Generated with Claude Code

Durability net for the ForgeBox/CommandBox install path. The channel was
published but broke end to end, undetected for weeks, because nothing in CI
exercises the *built* packages the way a CommandBox user installs them.

This leg builds the base + core packages FROM THE TREE (prepare-base.sh +
prepare-core.sh), stages them as `box install wheels-base-template` lands them
(base at the app root, wheels-core at vendor/wheels/ per box.json installPaths),
boots under the ortussolutions/commandbox image, and asserts the install->serve
journey with ZERO manual edits:

  - dev:  server binds no-edit, GET / 200 (welcome), /wheels/info 200 (dev
          whitelist, #2988), clean URL /main/index 200, db/ ships, no
          placeholders survive into the artifact.
  - prod: tools/ci/smoke-env.sh passes all six reload-gate / no-trace probes.

Pre-boot structural guards name the three packaging defects the campaign
repaired (#3173 placeholders, #3174 db/, plus the root-view generation) so a
regression is reported precisely instead of as an opaque boot failure.

Gated on tools/build/**, cli/lucli/templates/app/**, tools/ci/smoke-env.sh, and
the workflow file itself.

This leg tests the FIXED pipeline: the template keystone (#3176) is a sibling
PR not yet on develop, so the leg goes green once #3176 merges. The wheels-core
fixes (#3177/#3178/#3179) are already on develop. Verified locally (CommandBox
6.3.3): keystone-composed tree passes all probes; unfixed develop artifact
exits 1 with "Invalid slug detected" — the gate is real, the probes are not
weakened.

Refs #3173, #3174, #3176, #3177
Closes #3201

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Peter Amiri <petera@pai.com>
@bpamiri bpamiri enabled auto-merge (squash) June 13, 2026 03:57
@bpamiri bpamiri merged commit 457aa44 into develop Jun 13, 2026
6 of 7 checks passed
@bpamiri bpamiri deleted the peter/ci-commandbox-install-smoke branch June 13, 2026 03:59
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.

Durability net: CI must exercise the built ForgeBox/CommandBox install→serve journey

1 participant