name: CI Pipeline on: push: branches: [ main, develop ] pull_request: branches: [ main, develop ] jobs: backend-ci: name: Backend Build, Lint, Typecheck & Test 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: backend/package-lock.json - name: Install Backend Dependencies run: | cd backend npm ci - name: Generate Prisma Client run: | cd backend npx prisma generate - name: Typecheck Backend run: | cd backend npx tsc --noEmit - name: Lint Backend run: | cd backend npm run lint - name: Run Backend Unit Tests run: | cd backend npm run test env: JWT_ACCESS_SECRET: "test_access_secret_32_characters_minimum_entropy" JWT_REFRESH_SECRET: "test_refresh_secret_32_characters_minimum_entropy" - name: Build Backend run: | cd backend npm run build frontend-admin-ci: name: Admin Panel Build, Lint & Typecheck 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/admin-panel/package-lock.json - name: Install Admin Panel Dependencies run: | cd frontend/admin-panel npm ci - name: Typecheck Admin Panel run: | cd frontend/admin-panel npx tsc --noEmit - name: Lint Admin Panel run: | cd frontend/admin-panel npm run lint - name: Build Admin Panel run: | cd frontend/admin-panel npm run build