khodedawsh / marzneshin

A fork of Marzban aiming for scalability
https://t.me/marzneshins
GNU Affero General Public License v3.0
78 stars 5 forks source link

[EPIC] CI/CD Redesign #350

Open Krr0ptioN opened 3 weeks ago

Krr0ptioN commented 3 weeks ago

Description

image

Objective:

Redesign and implement a new CI/CD system to automate and streamline the process from code submission to production deployment, improving efficiency, reliability, and scalability.

New CI/CD Design Phases:

  1. Automated Code Analysis:

    • Tools: Sonar Cloud, CodeQL
    • Purpose: Analyze code quality and security upon new PR submissions.
  2. Continuous Integration (CI) Pipeline:

    • API CI Pipeline:
      • Linting, Unit Tests, Integration Tests, Build Package
    • Dashboard CI Pipeline:
      • Lint, Build, Interaction testing (storybook)
  3. Continuous Deployment for PR

    • Steps:
      1. Deploy API containers with Coolify
      2. Deploy dashboard to Vercel 3.A. Publishing and Storybook Integration (main-branch):
    • Steps: Publish Storybook and run integration tests
    • Purpose: Ensure UI components work as expected.
  4. End-to-End (E2E) Testing

    • Steps:
      • Execute E2E tests
      • Followed by manual testing
  5. Merge Readiness and Deployment Cleanup:

    • Steps: Automate merge checks; tear down deployments post-merge
    • Purpose: Ensure only passing PRs are merged and clean up resources.

Specifcations

Tasks