Goal
GitHub Actions workflow that builds the Docker image and verifies the container starts healthy.
Workflow file
.github/workflows/docker-smoke-test.yml
Trigger
on:
push:
branches: [master]
pull_request:
branches: [master]
Steps
docker build -t codex-proxy-test .
- Start container:
docker run -d -p 8080:8080 --name smoke codex-proxy-test
- Wait up to 30s for healthy, then
curl -f http://localhost:8080/health
docker rm -f smoke
Hard constraints — violations = auto-reject
- Branch is
master, NOT main
- Package manager is npm — no pnpm/yarn
- Do NOT modify
.gitignore, Dockerfile, package.json, package-lock.json, or any existing file
- Do NOT add any new dependencies
- The workflow is pure shell + Docker — no Node.js test runner needed
- Do NOT create test files — this is a workflow-only change (1 new file)
- Runner:
ubuntu-latest
Reference
Dockerfile is at repo root
- Health endpoint:
GET /health → 200
- Port configured in
config/default.yaml as server.port: 8080
Goal
GitHub Actions workflow that builds the Docker image and verifies the container starts healthy.
Workflow file
.github/workflows/docker-smoke-test.ymlTrigger
Steps
docker build -t codex-proxy-test .docker run -d -p 8080:8080 --name smoke codex-proxy-testcurl -f http://localhost:8080/healthdocker rm -f smokeHard constraints — violations = auto-reject
master, NOTmain.gitignore,Dockerfile,package.json,package-lock.json, or any existing fileubuntu-latestReference
Dockerfileis at repo rootGET /health→ 200config/default.yamlasserver.port: 8080