name: Quality Gate on: pull_request: push: branches: [main] concurrency: group: quality-gate-${{ github.ref }} cancel-in-progress: true jobs: quality-gate: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup pnpm uses: pnpm/action-setup@v4 with: version: 10 - name: Setup Node uses: actions/setup-node@v4 with: node-version: 20 cache: 'pnpm' - name: Install dependencies run: pnpm install --frozen-lockfile - name: Lint run: pnpm lint - name: Typecheck run: pnpm typecheck - name: Unit tests run: pnpm test - name: Prepare E2E environment run: cp .env.test .env - name: Build run: pnpm build - name: Install Playwright browsers run: pnpm exec playwright install --with-deps - name: E2E tests run: pnpm test:e2e