Skip to content

Major refactoring#80

Merged
javidahmed64592 merged 8 commits intomainfrom
major-refactoring
Jan 30, 2026
Merged

Major refactoring#80
javidahmed64592 merged 8 commits intomainfrom
major-refactoring

Conversation

@javidahmed64592
Copy link
Copy Markdown
Owner

This pull request introduces a major overhaul of the project's CI/CD pipeline and Docker deployment process, unifying and modernizing the workflows for building, testing, and releasing both the backend and frontend components. It adds robust Docker support, streamlines environment configuration, and introduces pre-commit hooks for code quality. The most significant changes are grouped below.

CI/CD and Workflow Unification:

  • Consolidated and modernized CI workflows:
    • Removed .github/workflows/ci_ui.yml and .github/workflows/ci_api.yml, merging their logic into a single, unified .github/workflows/ci.yml that now runs both backend and frontend (Flutter) tests, analysis, and coverage reporting. [1] [2] [3]
    • Replaced the previous build_api.yml workflow with a new, more robust .github/workflows/build.yml for building, verifying, and artifacting the Python wheel. [1] [2]
    • Added .github/workflows/docker.yml to automate Docker image building, health checking, release packaging, and publishing to GitHub Container Registry, including release note generation.
  • Introduced a custom GitHub Action for Docker container health checks at .github/actions/docker-check-containers/action.yml.

Dockerization and Deployment:

  • Added a multi-stage Dockerfile for efficient building and deployment of the Python backend, including wheel build, runtime setup, and startup/healthcheck scripts.
  • Added a production-ready docker-compose.yml for orchestrating the container, with persistent volumes and environment variable support.
  • Provided a sample .env.example for environment configuration, including host, port, and API token hash.

Code Quality and Tooling:

  • Introduced a .pre-commit-config.yaml with hooks for linting, formatting (ruff), type checking (mypy), and various file hygiene checks.

Configuration and Environment:

  • Simplified configuration/config.json by removing server host and port settings, which are now handled via environment variables and .env files.

CI/CD and Workflow Improvements

  • Unified backend and frontend CI into .github/workflows/ci.yml, removed legacy workflows, and ensured both Python and Flutter code are tested and analyzed in a single pipeline. [1] [2] [3]
  • Replaced build_api.yml with a more robust .github/workflows/build.yml for wheel building and verification. [1] [2]
  • Added .github/workflows/docker.yml for Docker build, health check, release packaging, and automated publishing to GitHub Container Registry with release notes.
  • Added a custom composite action .github/actions/docker-check-containers/action.yml for automated Docker container health checks in CI.

Dockerization and Deployment

  • Introduced a multi-stage Dockerfile for backend build and runtime, including wheel installation, startup logic, and health checks.
  • Added docker-compose.yml for orchestrating the container with persistent volumes and environment variable configuration.
  • Added .env.example for standardized environment configuration.

Code Quality and Tooling

  • Added .pre-commit-config.yaml with linting, formatting, and type-checking hooks to enforce code quality pre-commit.

Configuration

  • Removed server host/port from configuration/config.json, moving these settings to environment variables for better containerization.

@javidahmed64592 javidahmed64592 merged commit 25116ad into main Jan 30, 2026
13 checks passed
@javidahmed64592 javidahmed64592 deleted the major-refactoring branch January 30, 2026 23:01
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