name: CI on: push: branches: [main, rewrite, feat] pull_request: branches: [main, rewrite, feat] jobs: build-and-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' - name: Install dependencies run: npm ci - name: Lint run: npm run lint - name: Build run: npm run build - name: Run unit tests run: npm run test - name: Install Playwright browsers run: npx playwright install --with-deps chromium - name: Run E2E tests run: npm run test:e2e - name: Upload test results if: always() uses: actions/upload-artifact@v4 with: name: test-results path: test-results/