/
githubmirror
/
Front-End-Checklist
Обзор
Документация
Войти
/
githubmirror
/
Front-End-Checklist
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
.github/workflows/e2e.yml
124 строки
4 KB
David Dias
ci: reduce duplicate e2e checks
30 май 2026, 03:07
30 май 2026, 03:07
a8b9dee
Код
Авторство
О чём код?
name: E2E Tests on: workflow_dispatch: jobs: e2e-tests: name: E2E Tests - ${{ matrix.project }} runs-on: ${{ matrix.os }} timeout-minutes: 30 strategy: fail-fast: false matrix: os: [ubuntu-latest] project: [chromium, firefox, webkit] include: # Add Windows and macOS for Chrome only to save CI time - os: windows-latest project: chromium - os: macos-latest project: chromium steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup pnpm uses: pnpm/action-setup@v4 with: version: 10.33.0 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' cache: 'pnpm' - name: Install dependencies run: pnpm install --frozen-lockfile - name: Install Playwright browsers working-directory: ./apps/web run: pnpm exec playwright install --with-deps ${{ matrix.project }} - name: Build application run: pnpm run build --filter=web - name: Run E2E tests working-directory: ./apps/web run: pnpm run e2e --project=${{ matrix.project }} env: CI: true BASE_URL: http://localhost:3080 - name: Upload test results if: always() uses: actions/upload-artifact@v4 with: name: playwright-report-${{ matrix.os }}-${{ matrix.project }} path: apps/web/playwright-report/ retention-days: 7 - name: Upload test videos if: failure() uses: actions/upload-artifact@v4 with: name: playwright-videos-${{ matrix.os }}-${{ matrix.project }} path: apps/web/test-results/ retention-days: 7 - name: Upload screenshots if: failure() uses: actions/upload-artifact@v4 with: name: playwright-screenshots-${{ matrix.os }}-${{ matrix.project }} path: apps/web/e2e/screenshots/ retention-days: 7 e2e-report: name: E2E Test Report runs-on: ubuntu-latest needs: e2e-tests if: always() steps: - name: Checkout code uses: actions/checkout@v4 - name: Download all artifacts uses: actions/download-artifact@v4 with: path: all-reports/ - name: Merge test reports run: | echo "## E2E Test Results" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "| OS | Browser | Status |" >> $GITHUB_STEP_SUMMARY echo "|---|---|---|" >> $GITHUB_STEP_SUMMARY for report in all-reports/playwright-report-*; do if [ -d "$report" ]; then os_browser=$(basename "$report" | sed 's/playwright-report-//') if [ -f "$report/index.html" ]; then echo "| ${os_browser} | ✅ Passed |" >> $GITHUB_STEP_SUMMARY else echo "| ${os_browser} | ❌ Failed |" >> $GITHUB_STEP_SUMMARY fi fi done - name: Comment PR with results if: github.event_name == 'pull_request' uses: actions/github-script@v7 with: script: | const fs = require('fs'); const summary = fs.readFileSync(process.env.GITHUB_STEP_SUMMARY, 'utf8'); github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, body: summary });