test(ci): production image smoke-test job — boot frontend + backend images, curl /login #501
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Background
PR #499 wires the production deploy pipeline (Caddy + nightly staging + release tag → production). The first cross-image regression is caught only at deploy time: if a frontend Dockerfile change breaks the
productionstage, or the backend image fails to bind 8080, the workflow'sup -d --waitstep is the first to notice — at 02:00 during the nightly run.A pre-merge CI job that boots the actual production images and curls
/loginwould catch this at PR time.This was Sara's "deferred follow-up" in the pre-merge review summary (comment #8333) and tracked as OQ-2 in Elicit's PR #499 review (comment #8356).
Scope
Add a CI job
production-images-smoketo.gitea/workflows/ci.yml:productionstage and the backend image usingdocker compose -f docker-compose.prod.yml buildagainst a stub.env.--profile stagingto skip the OCR container, which is 5GB+ of model weights and not useful for a smoke).--wait)./loginon the frontend, assert 200 + content-type text/html./actuator/healthon the backend through the internal docker network (not via Caddy), assert UP.down -v.Total CI time target: < 5 minutes on the existing self-hosted runner. If the OCR container would be needed for a more complete smoke, that goes in a separate job (it would dominate runtime).
Acceptance criteria
productionstage on a throwaway branch)Out of scope
References