diff --git a/.github/workflows/frontend-docker-ci.yml b/.github/workflows/frontend-docker-ci.yml new file mode 100644 index 0000000..0f9394d --- /dev/null +++ b/.github/workflows/frontend-docker-ci.yml @@ -0,0 +1,49 @@ +name: Frontend Docker CI + +on: + push: + paths: + - "frontend/**" + - "docker/frontend.Dockerfile" + - ".github/workflows/frontend-docker-ci.yml" + pull_request: + paths: + - "frontend/**" + - "docker/frontend.Dockerfile" + - ".github/workflows/frontend-docker-ci.yml" + +jobs: + build-run-smoketest: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Build Docker image + run: docker build -f docker/frontend.Dockerfile -t listkeeper-frontend:ci . + + - name: Run container + run: | + docker run -d --name frontend-ci -p 8080:80 listkeeper-frontend:ci + docker ps + + - name: Smoke test homepage responds + run: | + # Try up to ~20 seconds for nginx to come up + for i in {1..20}; do + if curl -fsS http://localhost:8080 >/dev/null; then + echo "Frontend is serving ✅" + exit 0 + fi + sleep 1 + done + + echo "Frontend did not become ready ❌" + echo "---- docker logs ----" + docker logs frontend-ci || true + exit 1 + + - name: Cleanup + if: always() + run: docker rm -f frontend-ci || true \ No newline at end of file