Skip to content

feat: unified CI/CD pipeline and production Docker deployment#171

Open
Omdeepb69 wants to merge 1 commit intoc2siorg:mainfrom
Omdeepb69:feat/ci-cd-and-docker-deployment
Open

feat: unified CI/CD pipeline and production Docker deployment#171
Omdeepb69 wants to merge 1 commit intoc2siorg:mainfrom
Omdeepb69:feat/ci-cd-and-docker-deployment

Conversation

@Omdeepb69
Copy link
Copy Markdown

This PR directly implements GSoC 2026 Objectives 1 (First Deployment)
and 2 (CI/CD Integration).

Problem
The existing CI setup had two separate fragmented workflow files that
did not install GDB or g++, meaning backend tests involving compilation
would fail on any CI runner. The docker-compose.yml used a deprecated
version field, had no healthchecks, and the backend had no production
Dockerfile — only a dev one.

Changes

CI/CD:

  • Replaced run-test-for-server.yml and run-test-for-webapp.yml with a
    single unified ci.yml
  • Backend job installs gdb and g++ so real compilation tests run in CI
  • pytest runs with --cov-fail-under=50 to enforce coverage threshold
  • Frontend job runs npm ci and npm run build to catch build failures early
  • pip and npm caching for faster CI runs
  • Both jobs run in parallel

Docker:

  • New gdbui_server/Dockerfile using python:3.11-slim with gunicorn
    for production serving (not Flask dev server)
  • Installs gdb and g++ in the container
  • HEALTHCHECK instruction so the container reports ready status
  • Rewrote docker-compose.yml: removed deprecated version field, added
    service-based networking, healthchecks, restart policies
  • webapp service depends_on gdbui_server with service_healthy condition
    so the frontend only starts after the backend is confirmed ready

Note on VITE_API_BASE_URL: The docker-compose build arg sets this to
the internal service name (gdbui_server:10000) which works for
server-side rendering scenarios. For browser-based SPA deployment,
this should be set to the public hostname at build time — documented
in .env.production.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant