44 lines
1.4 KiB
YAML
44 lines
1.4 KiB
YAML
|
|
name: Build + boot check
|
||
|
|
|
||
|
|
# Proves the split Dockerfile actually builds and boots standalone (repo-split
|
||
|
|
# Stage 7b) -- not yet a full pytest-suite migration (that's separate, real
|
||
|
|
# follow-up work, same category as thermograph-copy's deferred vendoring).
|
||
|
|
# THERMOGRAPH_FRONTEND_BASE_INTERNAL is required (fails loud if unset) but
|
||
|
|
# never actually exercised here -- /healthz doesn't go through the
|
||
|
|
# catch-all proxy, so an unreachable placeholder is fine for this check.
|
||
|
|
|
||
|
|
on:
|
||
|
|
push:
|
||
|
|
branches: [main]
|
||
|
|
pull_request:
|
||
|
|
branches: [main]
|
||
|
|
|
||
|
|
jobs:
|
||
|
|
build:
|
||
|
|
runs-on: docker
|
||
|
|
steps:
|
||
|
|
- uses: actions/checkout@v4
|
||
|
|
|
||
|
|
- name: Install Docker CLI
|
||
|
|
run: |
|
||
|
|
apt-get update -qq
|
||
|
|
apt-get install -y -qq docker.io
|
||
|
|
|
||
|
|
- name: Build
|
||
|
|
run: docker build -t thermograph-backend:ci .
|
||
|
|
|
||
|
|
- name: Boot + health check
|
||
|
|
run: |
|
||
|
|
docker run -d --name backend-ci \
|
||
|
|
-e THERMOGRAPH_FRONTEND_BASE_INTERNAL=http://127.0.0.1:1 \
|
||
|
|
-p 8137:8137 thermograph-backend:ci
|
||
|
|
ok=0
|
||
|
|
for i in $(seq 1 30); do
|
||
|
|
if curl -fsS -o /dev/null http://127.0.0.1:8137/healthz; then ok=1; break; fi
|
||
|
|
sleep 1
|
||
|
|
done
|
||
|
|
docker logs backend-ci
|
||
|
|
docker rm -f backend-ci >/dev/null 2>&1 || true
|
||
|
|
if [ "$ok" != 1 ]; then echo "backend never became healthy"; exit 1; fi
|
||
|
|
echo "OK: backend booted standalone"
|