name: CI on: push: branches: [main, master, develop] pull_request: branches: [main, master, develop] jobs: api: runs-on: ubuntu-latest services: redis: image: redis:7-alpine ports: - 6379:6379 steps: - uses: actions/checkout@v4 - uses: actions/setup-dotnet@v4 with: dotnet-version: "10.0.x" - name: Restore run: dotnet restore src/Meezi.API/Meezi.API.csproj - name: Build run: dotnet build src/Meezi.API/Meezi.API.csproj --no-restore -c Release - name: Test run: dotnet test tests/Meezi.API.Tests/Meezi.API.Tests.csproj -c Release web: runs-on: ubuntu-latest defaults: run: working-directory: web/dashboard steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20" cache: npm cache-dependency-path: web/dashboard/package-lock.json - run: npm ci - run: npm run build env: NEXT_PUBLIC_API_URL: http://localhost:5080 e2e: runs-on: ubuntu-latest continue-on-error: true defaults: run: working-directory: web/dashboard steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "20" cache: npm cache-dependency-path: web/dashboard/package-lock.json - run: npm ci - run: npx playwright install chromium --with-deps - name: E2E (API-only smoke; set PLAYWRIGHT_API_URL when API service available) run: npm run test:e2e -- e2e/api-health.spec.ts env: PLAYWRIGHT_API_URL: http://localhost:5080 flutter: runs-on: ubuntu-latest continue-on-error: true steps: - uses: actions/checkout@v4 - uses: subosito/flutter-action@v2 with: channel: stable - run: flutter analyze mobile/meezi_app - run: flutter analyze mobile/meezi_pos