name: QuantIQ CI/CD Pipeline on: push: branches: [ main ] pull_request: branches: [ main ] jobs: # Job 1: Validate Frontend Code quality, Type safety, and Build verification frontend-ci: name: Frontend Quality & Build Verification runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 20 cache: 'npm' cache-dependency-path: frontend/package-lock.json - name: Install Frontend Dependencies run: npm ci working-directory: frontend - name: Verify TypeScript Compilation & Linting run: npm run build working-directory: frontend # Job 2: Validate Backend Linting, Format Checks, and Model Inferences backend-ci: name: Backend Quality & Ruff Validation runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install uv Package Manager run: curl -LsSf https://astral.sh/uv/install.sh | sh - name: Install Dependencies via uv run: uv sync --frozen - name: Run Ruff Linter run: uv run ruff check . continue-on-error: true # Warning mode for initial transition - name: Verify Backend Entry Point builds run: uv run python -c "from backend.app import main" env: DATABASE_URL: "postgresql+asyncpg://mock:mock@localhost:5432/mock" REDIS_URL: "redis://localhost:6379/0" GEMINI_API_KEY: "mock_api_key"