All checks were successful
Sync infra to hosts / sync-beta (push) Has been skipped
Sync infra to hosts / sync-prod (push) Has been skipped
Sync infra to hosts / sync-centralis (push) Has been skipped
Sync infra to hosts / sync-dev (push) Successful in 9s
secrets-guard / encrypted (push) Successful in 5s
Validate observability stack / validate (push) Successful in 12s
shell-lint / shellcheck (push) Successful in 8s
Build + push images (Forgejo registry) / build-push (frontend) (push) Successful in 26s
Build + push images (Forgejo registry) / build-push (backend) (push) Successful in 1m10s
Deploy / deploy (backend) (push) Successful in 1m41s
Deploy / deploy (frontend) (push) Successful in 1m48s
secrets-guard / encrypted (pull_request) Successful in 8s
shell-lint / shellcheck (pull_request) Successful in 9s
PR build (required check) / changes (pull_request) Successful in 20s
PR build (required check) / validate-observability (pull_request) Successful in 15s
PR build (required check) / build-frontend (pull_request) Successful in 17s
PR build (required check) / build-backend (pull_request) Successful in 2m26s
PR build (required check) / gate (pull_request) Successful in 1s
Completes the Forgejo domain migration. ROOT_URL moved to dev.jinemi.com earlier; the registry half was deliberately deferred. Every image name, REGISTRY_HOST default, runner label and --add-host pin now names dev.jinemi.com, so the registry host and the bearer-token realm agree again. Both names address the same Forgejo, so no image needs re-pushing and a rollback to a tag pushed under the old prefix still resolves. git.thermograph.org therefore stays served off the same Caddy site block -- one block, so the /v2/* mesh-only matcher keeps covering both names -- for pre-migration tags and for runners holding it as their registered instance URL. Mesh clients now pin both names in /etc/hosts: the new one as registry host and token realm, the old one for pre-migration tags. runner-vps2/config.yaml carries both --add-host entries for the same reason. Also renames Centralis' endpoint to mcp.jinemi.com in the two places this repo names it; Centralis itself is provisioned outside this repo. Host-side steps this cannot do (documented in deploy/forgejo/README.md, "Host-side steps"): the Forgejo Actions variable REGISTRY_HOST, docker login against the new host, and the /etc/hosts pins.
47 lines
2.3 KiB
YAML
47 lines
2.3 KiB
YAML
# Test harness: pull the published BACKEND image and run it (+ a throwaway TimescaleDB)
|
|
# so the frontend's integration tests exercise the real HTTP contract instead of
|
|
# importing backend source. Used by scripts/backend-for-tests.sh; not a deploy file.
|
|
# The frontend itself is NOT a service here — the tests run the SSR app in-process
|
|
# (TestClient) with api_client pointed at this backend. DB data is tmpfs (ephemeral).
|
|
services:
|
|
db:
|
|
image: timescale/timescaledb:${TIMESCALEDB_TAG:-latest-pg18}
|
|
environment:
|
|
POSTGRES_USER: thermograph
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-testing}
|
|
POSTGRES_DB: thermograph
|
|
tmpfs:
|
|
# pg18 places PGDATA in a version subdir under the mount — mount at /var/lib/postgresql.
|
|
- /var/lib/postgresql
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U thermograph -d thermograph"]
|
|
interval: 3s
|
|
timeout: 5s
|
|
retries: 20
|
|
|
|
backend:
|
|
# The published backend image is pulled (no local build).
|
|
#
|
|
# No default tag on purpose: scripts/backend-for-tests.sh computes one from
|
|
# THIS checkout -- sha-<12hex of `git log -1 -- backend/`>, the same
|
|
# domain-keyed rule build-push.yml and deploy.yml both use -- so the harness
|
|
# tracks the tree instead of drifting behind a hardcoded pin. (It was pinned
|
|
# to the split-era v0.0.2-split-ci, under the retired
|
|
# admin_emi/thermograph-backend/app path, long after both were superseded.)
|
|
# Override THERMOGRAPH_BACKEND_TEST_TAG to pin a specific build.
|
|
image: ${REGISTRY_HOST:-dev.jinemi.com}/${BACKEND_IMAGE_PATH:-jinemi/thermograph/backend}:${THERMOGRAPH_BACKEND_TEST_TAG:?set it, or run via scripts/backend-for-tests.sh which derives it}
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
environment:
|
|
THERMOGRAPH_DATABASE_URL: postgresql+asyncpg://thermograph:${POSTGRES_PASSWORD:-testing}@db:5432/thermograph
|
|
# Required at import; the frontend tests never drive the backend's reverse proxy,
|
|
# so an unreachable placeholder is fine.
|
|
THERMOGRAPH_FRONTEND_BASE_INTERNAL: http://127.0.0.1:1
|
|
THERMOGRAPH_BASE: "/"
|
|
THERMOGRAPH_ENABLE_NOTIFIER: "0"
|
|
PORT: "8137"
|
|
WORKERS: "1"
|
|
ports:
|
|
# Host port defaults to 18137 to avoid a dev server on 8137.
|
|
- "127.0.0.1:${BACKEND_TEST_HOST_PORT:-18137}:8137"
|