name: Test Suite on: push: branches: [ main, develop ] pull_request: branches: [ main, develop ] jobs: test: runs-on: ubuntu-latest strategy: matrix: node-version: [24.15.0] steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: 'npm' - name: Install dependencies (backend) working-directory: ./backend run: npm ci - name: Generate Prisma Client working-directory: ./backend run: npm run prisma:generate - name: Prisma schema validate working-directory: ./backend run: npx prisma validate --schema prisma/schema.prisma - name: Dependency audit (high+critical) working-directory: ./backend run: npm audit --audit-level=high - name: Run tests (backend) working-directory: ./backend run: npm test - name: Build NestJS app working-directory: ./backend run: npm run build continue-on-error: true flutter-quality: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Detect Flutter-related changes id: filter uses: dorny/paths-filter@v3 with: filters: | flutter: - 'flutter/**' - '.github/workflows/test.yml' - name: Setup Flutter if: steps.filter.outputs.flutter == 'true' uses: subosito/flutter-action@v2 with: flutter-version: '3.41.9' - name: Install dependencies (flutter) if: steps.filter.outputs.flutter == 'true' working-directory: ./flutter run: flutter pub get - name: Analyze Flutter code if: steps.filter.outputs.flutter == 'true' working-directory: ./flutter run: flutter analyze - name: Run Flutter tests if: steps.filter.outputs.flutter == 'true' working-directory: ./flutter run: flutter test