Fix Hono JSX runtime in production images #6

Merged
erik merged 1 commit from task-c9375830-hono-jsx-runtime into main 2026-07-28 19:33:02 -05:00
Owner

Summary

  • copy tsconfig.json into the production runtime image so tsx uses Hono JSX
  • add a reusable production-container smoke check for /, /health, and /api/v1/health
  • run container validation before Forgejo publishes multi-platform images

Verification

  • npm run build
  • npm run lint
  • npm test (304 tests)
  • reproduced HTTP 500 and React is not defined against the old image
  • validated the fixed production image with version 0.3.2
## Summary - copy `tsconfig.json` into the production runtime image so `tsx` uses Hono JSX - add a reusable production-container smoke check for `/`, `/health`, and `/api/v1/health` - run container validation before Forgejo publishes multi-platform images ## Verification - `npm run build` - `npm run lint` - `npm test` (304 tests) - reproduced HTTP 500 and `React is not defined` against the old image - validated the fixed production image with version `0.3.2`
Validate Hono JSX in production images
All checks were successful
CI / build-lint-test (push) Successful in 48s
a7fabd9d60
Author
Owner

Review summary

The runtime image now includes tsconfig.json, preserving Hono's JSX import source when tsx executes production templates. The new container smoke check reproduces the configured post-setup runtime path and runs before multi-platform publication.

Acceptance criteria

  • Met — The production image renders Hono JSX without importing or installing React. The runtime receives tsconfig.json, and the fixed image passed the homepage smoke check.
  • Met/ returns the intended homepage after setup. Validation enables the completed development fixture, requires HTTP 200, and checks the configured introduction.
  • Met/health and /api/v1/health return HTTP 200 in the production container check.
  • Met — Automated release validation catches the regression before the publish step.
  • Partial (post-merge gate) — The workflow remains configured for immutable amd64/arm64 publication; publishing the new image is intentionally deferred until after merge and release approval.

Blocking issues

  • None.

Warnings

  • None.

Verdict

Approved. The code and validation changes satisfy the merge-stage requirements; immutable image publication remains a required post-merge pipeline step.

### Review summary The runtime image now includes `tsconfig.json`, preserving Hono's JSX import source when `tsx` executes production templates. The new container smoke check reproduces the configured post-setup runtime path and runs before multi-platform publication. ### Acceptance criteria - **Met** — The production image renders Hono JSX without importing or installing React. The runtime receives `tsconfig.json`, and the fixed image passed the homepage smoke check. - **Met** — `/` returns the intended homepage after setup. Validation enables the completed development fixture, requires HTTP 200, and checks the configured introduction. - **Met** — `/health` and `/api/v1/health` return HTTP 200 in the production container check. - **Met** — Automated release validation catches the regression before the publish step. - **Partial (post-merge gate)** — The workflow remains configured for immutable amd64/arm64 publication; publishing the new image is intentionally deferred until after merge and release approval. ### Blocking issues - None. ### Warnings - None. ### Verdict Approved. The code and validation changes satisfy the merge-stage requirements; immutable image publication remains a required post-merge pipeline step.
erik merged commit 1665f8d95c into main 2026-07-28 19:33:02 -05:00
erik deleted branch task-c9375830-hono-jsx-runtime 2026-07-28 19:33:02 -05:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
erik/erikvancraddock.com!6
No description provided.