Skip to content

CI never builds or boots the app image — packaging/runtime bugs slip through #84

Description

@JumpTechCode

Summary

CI runs the app from a host virtualenv (pip install -e ".[dev]") and compose only starts postgres/redis/kafka — the app image is never built or booted in CI. The non-editable production image therefore has no automated coverage, and two real bugs reached main because of it:

Both are invisible to the source-tree test suite (the files exist in the checkout) and to a build_app() import smoke (the crash is in the lifespan). Only a real container boot surfaces them.

Proposed fix

Add a CI job (PR or nightly) that:

  1. docker builds the image, then runs it and asserts /healthz (or /readyz) — i.e. the lifespan actually starts (load_settings() + PromptBundle.load succeed).
  2. Optionally runs the README "See it run" demo end-to-end against the built image as a contract test (matches the CLAUDE.md quality bar: "docker compose up boots the entire stack … returns a diagnosis … CI-verified contract").

Cost: a Docker build per run (the embedding-model preload dominates; cache it). Nightly is a reasonable cadence if per-PR is too slow.

Related, smaller

make compose-up is docker compose up -d --wait with no --build, so re-running after code changes silently reuses a stale app image. Consider --build (or a make compose-rebuild) and/or a README note.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions