Files
TrueGrowth/.github/workflows/ci.yml

134 lines
3.3 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: CI
on:
push:
branches:
- main
pull_request:
permissions:
actions: read
contents: read
jobs:
# PR 时运行lint、test、build 和冒烟测试
main:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
# Cache node_modules
- uses: actions/setup-node@v3
with:
node-version: 20
cache: 'pnpm'
- run: corepack enable pnpm
- run: pnpm install
- uses: nrwl/nx-set-shas@v4
# 安装 Playwright 浏览器和依赖
- name: Install Playwright
run: npx playwright install --with-deps chromium
# lint、test、build
- run: npx nx affected -t test build --base=origin/develop --verbose
- run: npx nx affected -t lint --exclude=drawnix --base=origin/develop --verbose
# PR 时运行冒烟测试快速约2分钟
- name: Run Smoke Tests
run: pnpm run e2e:smoke
- name: Upload Smoke Test Results
if: failure()
uses: actions/upload-artifact@v4
with:
name: smoke-test-results
path: apps/web-e2e/test-results/
# PR 时运行视觉回归测试
- name: Run Visual Regression Tests
run: pnpm run e2e:visual
- name: Upload Visual Test Report
if: failure()
uses: actions/upload-artifact@v4
with:
name: visual-diff-report
path: apps/web-e2e/playwright-report/
- name: Check Bundle Size
if: always()
run: pnpm run size
- name: Upload Bundle Stats
if: always()
uses: actions/upload-artifact@v4
with:
name: bundle-stats
path: dist/apps/web/stats.html
# 发布前运行:完整 E2E 测试 + 生成用户手册
release-e2e:
runs-on: ubuntu-latest
# 仅在 main 分支 push 或手动触发时运行
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v3
with:
node-version: 20
cache: 'pnpm'
- run: corepack enable pnpm
- run: pnpm install
# 安装所有浏览器用于完整测试
- name: Install Playwright Browsers
run: npx playwright install --with-deps
# 运行完整功能测试
- name: Run Full E2E Tests
run: pnpm run e2e:features
# 运行视觉回归测试
- name: Run Visual Tests
run: pnpm run e2e:visual
# 运行手册生成测试
- name: Run Manual Generation Tests
run: pnpm run e2e:manual
# 生成用户手册
- name: Generate User Manual
run: pnpm run manual:build
# 上传测试报告
- name: Upload E2E Test Report
if: always()
uses: actions/upload-artifact@v4
with:
name: e2e-test-report
path: apps/web-e2e/playwright-report/
# 上传测试结果(包含截图)
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: e2e-test-results
path: apps/web-e2e/test-results/
# 上传用户手册
- name: Upload User Manual
uses: actions/upload-artifact@v4
with:
name: user-manual
path: docs/user-manual/