name: PR Review on: pull_request: branches: ['main'] concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: validate: name: Validate runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Install uses: ./.github/actions/install - name: Check Frontmatter run: pnpm check:frontmatter - name: Run Biome Check uses: mongolyy/reviewdog-action-biome@v2 with: github_token: ${{ secrets.github_token }} reporter: github-pr-review - name: Run repository policy tests run: pnpm test:repo - name: Run type check run: pnpm typecheck - name: Run tests run: pnpm test # links: # name: Check Links # runs-on: ubuntu-latest # steps: # - name: Checkout # uses: actions/checkout@v6 # - name: Check Links # uses: lycheeverse/lychee-action@v2.2.0 # with: # args: --config ./lychee.toml --verbose --no-progress . # fail: true changes: name: Detect changes runs-on: ubuntu-latest outputs: e2e_relevant: ${{ steps.filter.outputs.e2e_relevant }} steps: - name: Checkout uses: actions/checkout@v6 - name: Check for e2e-relevant changes id: filter uses: dorny/paths-filter@v3 with: filters: | e2e_relevant: - 'apps/web/app/**' - 'apps/web/components/**' - 'apps/web/lib/**' - 'apps/web/public/**' - 'apps/e2e/**' - 'packages/ui/**' e2e: name: E2E Tests needs: [validate, changes] if: needs.changes.outputs.e2e_relevant == 'true' runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Install uses: ./.github/actions/install - name: Install Playwright Browsers run: npx playwright install --with-deps - name: Run Playwright tests run: pnpm test:e2e - name: Upload test results if: always() uses: actions/upload-artifact@v6 with: name: playwright-report path: apps/e2e/playwright-report/ retention-days: 30