|
40011
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
v8-canary-syntax (26.0.0-v8-canary20251016054584e5 v8-canary-syntax (26.0.0-v8-canary20251016054584e5cf, ubuntu-latest)...
|
1
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
v8-canary-syntax:
name: v8-canary-syntax (26.0.0-v8-canary20251016054584e5cf, ubuntu-latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
- name: Verify node and npm
run: |
canaryVersion="${{ matrix.node-version }}"
majorVersion=$(echo $canaryVersion | cut -d- -f1)
__tests__/verify-node.sh "$majorVersion"
shell: bash
strategy:
fail-fast: "false"
matrix:
node-version:
- 26.0.0-v8-canary20251016054584e5cf
os:
- ubuntu-latest
...
|
v8-canary-syntax
|
null
|
["ubuntu-latest"]
|
33271
|
1
|
1791846609
|
1791846627
|
1791844717
|
1791846627
|
|
0
|
|
0
|
Edit
Delete
|
|
40012
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
v8-canary-syntax (26.0.0-v8-canary20251016054584e5 v8-canary-syntax (26.0.0-v8-canary20251016054584e5cf, windows-latest)...
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
v8-canary-syntax:
name: v8-canary-syntax (26.0.0-v8-canary20251016054584e5cf, windows-latest)
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
- name: Verify node and npm
run: |
canaryVersion="${{ matrix.node-version }}"
majorVersion=$(echo $canaryVersion | cut -d- -f1)
__tests__/verify-node.sh "$majorVersion"
shell: bash
strategy:
fail-fast: "false"
matrix:
node-version:
- 26.0.0-v8-canary20251016054584e5cf
os:
- windows-latest
...
|
v8-canary-syntax
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950478
|
|
0
|
|
0
|
Edit
Delete
|
|
14411
|
10018
|
6
|
5
|
8c225d73253fe95a23618816b2f7e6a03010cae4
|
0
|
验证总结
|
1
|
name: PR Validation
"on":
pull_request name: PR Validation
"on":
pull_request:
branches: [main, develop]
types: [opened, synchronize, reopened]
env:
NODE_VERSION: "20"
PNPM_VERSION: "8"
jobs:
validation-summary:
name: 验证总结
runs-on: ubuntu-latest
if: always()
steps:
- name: 输出验证结果
run: |
echo "## PR 验证结果"
echo ""
echo "| 检查项 | 状态 |"
echo "|--------|------|"
echo "| 后端验证 | ${{ needs.backend-validation.result || 'skipped' }} |"
echo "| 前端验证 | ${{ needs.frontend-validation.result || 'skipped' }} |"
echo "| 共享包验证 | ${{ needs.shared-validation.result || 'skipped' }} |"
echo "| 提交信息 | ${{ needs.commit-validation.result }} |"
- name: 检查是否通过
run: |
BACKEND="${{ needs.backend-validation.result }}"
FRONTEND="${{ needs.frontend-validation.result }}"
SHARED="${{ needs.shared-validation.result }}"
if [ "$BACKEND" == "failure" ] || [ "$FRONTEND" == "failure" ] || [ "$SHARED" == "failure" ]; then
echo "❌ PR 验证失败"
exit 1
fi
echo "✅ PR 验证通过"
...
|
validation-summary
|
["backend-validation","frontend-valida ["backend-validation","frontend-validation","shared-validation","commit-validation"]...
|
["ubuntu-latest"]
|
11872
|
1
|
1774952026
|
1774952026
|
1774950059
|
1774952026
|
|
1
|
|
0
|
Edit
Delete
|
|
25583
|
18855
|
6
|
5
|
982b47544d9cefb513875cc84c6c36bf1ee27fb2
|
0
|
验证总结
|
1
|
name: PR Validation
"on":
pull_request name: PR Validation
"on":
pull_request:
branches: [main, develop]
types: [opened, synchronize, reopened]
env:
NODE_VERSION: "20"
PNPM_VERSION: "8"
jobs:
validation-summary:
name: 验证总结
runs-on: ubuntu-latest
if: always()
steps:
- name: 输出验证结果
run: |
echo "## PR 验证结果"
echo ""
echo "| 检查项 | 状态 |"
echo "|--------|------|"
echo "| 后端验证 | ${{ needs.backend-validation.result || 'skipped' }} |"
echo "| 前端验证 | ${{ needs.frontend-validation.result || 'skipped' }} |"
echo "| 共享包验证 | ${{ needs.shared-validation.result || 'skipped' }} |"
echo "| 提交信息 | ${{ needs.commit-validation.result }} |"
- name: 检查是否通过
run: |
BACKEND="${{ needs.backend-validation.result }}"
FRONTEND="${{ needs.frontend-validation.result }}"
SHARED="${{ needs.shared-validation.result }}"
if [ "$BACKEND" == "failure" ] || [ "$FRONTEND" == "failure" ] || [ "$SHARED" == "failure" ]; then
echo "❌ PR 验证失败"
exit 1
fi
echo "✅ PR 验证通过"
...
|
validation-summary
|
["backend-validation","frontend-valida ["backend-validation","frontend-validation","shared-validation","commit-validation"]...
|
["ubuntu-latest"]
|
21941
|
1
|
1777522376
|
1777522376
|
1777515701
|
1777522376
|
|
1
|
|
0
|
Edit
Delete
|
|
25691
|
18901
|
6
|
5
|
00e6c41c98f5eca066cac8efd4dc9e91dfe5f583
|
0
|
验证总结
|
1
|
name: PR Validation
"on":
pull_request name: PR Validation
"on":
pull_request:
branches: [main, develop]
types: [opened, synchronize, reopened]
env:
NODE_VERSION: "20"
PNPM_VERSION: "8"
jobs:
validation-summary:
name: 验证总结
runs-on: ubuntu-latest
if: always()
steps:
- name: 输出验证结果
run: |
echo "## PR 验证结果"
echo ""
echo "| 检查项 | 状态 |"
echo "|--------|------|"
echo "| 后端验证 | ${{ needs.backend-validation.result || 'skipped' }} |"
echo "| 前端验证 | ${{ needs.frontend-validation.result || 'skipped' }} |"
echo "| 共享包验证 | ${{ needs.shared-validation.result || 'skipped' }} |"
echo "| 提交信息 | ${{ needs.commit-validation.result }} |"
- name: 检查是否通过
run: |
BACKEND="${{ needs.backend-validation.result }}"
FRONTEND="${{ needs.frontend-validation.result }}"
SHARED="${{ needs.shared-validation.result }}"
if [ "$BACKEND" == "failure" ] || [ "$FRONTEND" == "failure" ] || [ "$SHARED" == "failure" ]; then
echo "❌ PR 验证失败"
exit 1
fi
echo "✅ PR 验证通过"
...
|
validation-summary
|
["backend-validation","frontend-valida ["backend-validation","frontend-validation","shared-validation","commit-validation"]...
|
["ubuntu-latest"]
|
22037
|
1
|
1777545557
|
1777545558
|
1777531658
|
1777545558
|
|
1
|
|
0
|
Edit
Delete
|
|
25957
|
19092
|
6
|
5
|
468c7319f39e251cdf8eb96c3aa63f4db200a7db
|
0
|
验证总结
|
1
|
name: PR Validation
"on":
pull_request name: PR Validation
"on":
pull_request:
branches: [main, develop]
types: [opened, synchronize, reopened]
env:
NODE_VERSION: "20"
PNPM_VERSION: "8"
jobs:
validation-summary:
name: 验证总结
runs-on: ubuntu-latest
if: always()
steps:
- name: 输出验证结果
run: |
echo "## PR 验证结果"
echo ""
echo "| 检查项 | 状态 |"
echo "|--------|------|"
echo "| 后端验证 | ${{ needs.backend-validation.result || 'skipped' }} |"
echo "| 前端验证 | ${{ needs.frontend-validation.result || 'skipped' }} |"
echo "| 共享包验证 | ${{ needs.shared-validation.result || 'skipped' }} |"
echo "| 提交信息 | ${{ needs.commit-validation.result }} |"
- name: 检查是否通过
run: |
BACKEND="${{ needs.backend-validation.result }}"
FRONTEND="${{ needs.frontend-validation.result }}"
SHARED="${{ needs.shared-validation.result }}"
if [ "$BACKEND" == "failure" ] || [ "$FRONTEND" == "failure" ] || [ "$SHARED" == "failure" ]; then
echo "❌ PR 验证失败"
exit 1
fi
echo "✅ PR 验证通过"
...
|
validation-summary
|
["backend-validation","frontend-valida ["backend-validation","frontend-validation","shared-validation","commit-validation"]...
|
["ubuntu-latest"]
|
22282
|
1
|
1777609300
|
1777609301
|
1777597469
|
1777609301
|
|
1
|
|
0
|
Edit
Delete
|
|
26011
|
19099
|
6
|
5
|
6845ebac54cb057c62116944a21c3a04b78708bf
|
0
|
验证总结
|
1
|
name: PR Validation
"on":
pull_request name: PR Validation
"on":
pull_request:
branches: [main, develop]
types: [opened, synchronize, reopened]
env:
NODE_VERSION: "20"
PNPM_VERSION: "8"
jobs:
validation-summary:
name: 验证总结
runs-on: ubuntu-latest
if: always()
steps:
- name: 输出验证结果
run: |
echo "## PR 验证结果"
echo ""
echo "| 检查项 | 状态 |"
echo "|--------|------|"
echo "| 后端验证 | ${{ needs.backend-validation.result || 'skipped' }} |"
echo "| 前端验证 | ${{ needs.frontend-validation.result || 'skipped' }} |"
echo "| 共享包验证 | ${{ needs.shared-validation.result || 'skipped' }} |"
echo "| 提交信息 | ${{ needs.commit-validation.result }} |"
- name: 检查是否通过
run: |
BACKEND="${{ needs.backend-validation.result }}"
FRONTEND="${{ needs.frontend-validation.result }}"
SHARED="${{ needs.shared-validation.result }}"
if [ "$BACKEND" == "failure" ] || [ "$FRONTEND" == "failure" ] || [ "$SHARED" == "failure" ]; then
echo "❌ PR 验证失败"
exit 1
fi
echo "✅ PR 验证通过"
...
|
validation-summary
|
["backend-validation","frontend-valida ["backend-validation","frontend-validation","shared-validation","commit-validation"]...
|
["ubuntu-latest"]
|
22315
|
1
|
1777609934
|
1777609935
|
1777597571
|
1777609935
|
|
1
|
|
0
|
Edit
Delete
|
|
29947
|
22658
|
6
|
5
|
921a6ce5568beb3034fc47d4bf7a392351c0068f
|
0
|
验证总结
|
1
|
name: PR Validation
"on":
pull_request name: PR Validation
"on":
pull_request:
branches: [main, develop]
types: [opened, synchronize, reopened]
env:
NODE_OPTIONS: --max-old-space-size=8192
NODE_VERSION: "20"
PNPM_VERSION: "8"
jobs:
validation-summary:
name: 验证总结
runs-on: ubuntu-latest
if: always()
steps:
- name: 输出验证结果
run: |
echo "## PR 验证结果"
echo ""
echo "| 检查项 | 状态 |"
echo "|--------|------|"
echo "| 后端验证 | ${{ needs.backend-validation.result || 'skipped' }} |"
echo "| 前端验证 | ${{ needs.frontend-validation.result || 'skipped' }} |"
echo "| 共享包验证 | ${{ needs.shared-validation.result || 'skipped' }} |"
echo "| 提交信息 | ${{ needs.commit-validation.result }} |"
- name: 检查是否通过
run: |
BACKEND="${{ needs.backend-validation.result }}"
FRONTEND="${{ needs.frontend-validation.result }}"
SHARED="${{ needs.shared-validation.result }}"
if [ "$BACKEND" == "failure" ] || [ "$FRONTEND" == "failure" ] || [ "$SHARED" == "failure" ]; then
echo "❌ PR 验证失败"
exit 1
fi
echo "✅ PR 验证通过"
permissions:
contents: read
pull-requests: write # dorny/paths-filter@v3 + github-script@v7 评论 PR
checks: write
issues: write
...
|
validation-summary
|
["backend-validation","frontend-valida ["backend-validation","frontend-validation","shared-validation","commit-validation"]...
|
["ubuntu-latest"]
|
26161
|
1
|
1778689103
|
1778689104
|
1778679720
|
1778689104
|
|
1
|
|
0
|
Edit
Delete
|
|
40061
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (.nvmrc, macos-15-intel)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (.nvmrc, macos-15-intel)
runs-on: macos-15-intel
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- .nvmrc
os:
- macos-15-intel
...
|
version-file
|
null
|
["macos-15-intel"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950479
|
|
0
|
|
0
|
Edit
Delete
|
|
40062
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (.nvmrc, macos-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (.nvmrc, macos-latest)
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- .nvmrc
os:
- macos-latest
...
|
version-file
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950479
|
|
0
|
|
0
|
Edit
Delete
|
|
40063
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (.nvmrc, ubuntu-latest)
|
1
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (.nvmrc, ubuntu-latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- .nvmrc
os:
- ubuntu-latest
...
|
version-file
|
null
|
["ubuntu-latest"]
|
33284
|
1
|
1791846817
|
1791846822
|
1791844717
|
1791846822
|
|
0
|
|
0
|
Edit
Delete
|
|
40064
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (.nvmrc, windows-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (.nvmrc, windows-latest)
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- .nvmrc
os:
- windows-latest
...
|
version-file
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950479
|
|
0
|
|
0
|
Edit
Delete
|
|
40065
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (.tool-versions, macos-15-intel)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (.tool-versions, macos-15-intel)
runs-on: macos-15-intel
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- .tool-versions
os:
- macos-15-intel
...
|
version-file
|
null
|
["macos-15-intel"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950479
|
|
0
|
|
0
|
Edit
Delete
|
|
40066
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (.tool-versions, macos-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (.tool-versions, macos-latest)
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- .tool-versions
os:
- macos-latest
...
|
version-file
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950479
|
|
0
|
|
0
|
Edit
Delete
|
|
40067
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (.tool-versions, ubuntu-latest)
|
1
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (.tool-versions, ubuntu-latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- .tool-versions
os:
- ubuntu-latest
...
|
version-file
|
null
|
["ubuntu-latest"]
|
33285
|
1
|
1791846822
|
1791846841
|
1791844717
|
1791846841
|
|
0
|
|
0
|
Edit
Delete
|
|
40068
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (.tool-versions, windows-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (.tool-versions, windows-latest)
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- .tool-versions
os:
- windows-latest
...
|
version-file
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950479
|
|
0
|
|
0
|
Edit
Delete
|
|
40069
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (.tool-versions-node, macos-15-intel)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (.tool-versions-node, macos-15-intel)
runs-on: macos-15-intel
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- .tool-versions-node
os:
- macos-15-intel
...
|
version-file
|
null
|
["macos-15-intel"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950479
|
|
0
|
|
0
|
Edit
Delete
|
|
40070
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (.tool-versions-node, macos-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (.tool-versions-node, macos-latest)
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- .tool-versions-node
os:
- macos-latest
...
|
version-file
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950479
|
|
0
|
|
0
|
Edit
Delete
|
|
40071
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (.tool-versions-node, ubuntu-latest)
|
1
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (.tool-versions-node, ubuntu-latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- .tool-versions-node
os:
- ubuntu-latest
...
|
version-file
|
null
|
["ubuntu-latest"]
|
33286
|
1
|
1791846841
|
1791846847
|
1791844717
|
1791846847
|
|
0
|
|
0
|
Edit
Delete
|
|
40072
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (.tool-versions-node, windows-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (.tool-versions-node, windows-latest)
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- .tool-versions-node
os:
- windows-latest
...
|
version-file
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950479
|
|
0
|
|
0
|
Edit
Delete
|
|
40073
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (mise.toml, macos-15-intel)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (mise.toml, macos-15-intel)
runs-on: macos-15-intel
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- mise.toml
os:
- macos-15-intel
...
|
version-file
|
null
|
["macos-15-intel"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950479
|
|
0
|
|
0
|
Edit
Delete
|
|
40074
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (mise.toml, macos-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (mise.toml, macos-latest)
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- mise.toml
os:
- macos-latest
...
|
version-file
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950479
|
|
0
|
|
0
|
Edit
Delete
|
|
40075
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (mise.toml, ubuntu-latest)
|
1
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (mise.toml, ubuntu-latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- mise.toml
os:
- ubuntu-latest
...
|
version-file
|
null
|
["ubuntu-latest"]
|
33287
|
1
|
1791846847
|
1791846852
|
1791844717
|
1791846853
|
|
0
|
|
0
|
Edit
Delete
|
|
40076
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (mise.toml, windows-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (mise.toml, windows-latest)
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- mise.toml
os:
- windows-latest
...
|
version-file
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950479
|
|
0
|
|
0
|
Edit
Delete
|
|
40077
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (package.json, macos-15-intel)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (package.json, macos-15-intel)
runs-on: macos-15-intel
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- package.json
os:
- macos-15-intel
...
|
version-file
|
null
|
["macos-15-intel"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950479
|
|
0
|
|
0
|
Edit
Delete
|
|
40078
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (package.json, macos-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (package.json, macos-latest)
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- package.json
os:
- macos-latest
...
|
version-file
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950479
|
|
0
|
|
0
|
Edit
Delete
|
|
40079
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (package.json, ubuntu-latest)
|
1
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (package.json, ubuntu-latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- package.json
os:
- ubuntu-latest
...
|
version-file
|
null
|
["ubuntu-latest"]
|
33288
|
1
|
1791846853
|
1791846860
|
1791844717
|
1791846860
|
|
0
|
|
0
|
Edit
Delete
|
|
40080
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file (package.json, windows-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file:
name: version-file (package.json, windows-latest)
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/${{ matrix.node-version-file }}
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
node-version-file:
- package.json
os:
- windows-latest
...
|
version-file
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950480
|
|
0
|
|
0
|
Edit
Delete
|
|
40081
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file-dev-engines (macos-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file-dev-engines:
name: version-file-dev-engines (macos-latest)
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/package-dev-engines.json
- name: Verify node
run: __tests__/verify-node.sh 26
strategy:
fail-fast: "false"
matrix:
os:
- macos-latest
...
|
version-file-dev-engines
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950480
|
|
0
|
|
0
|
Edit
Delete
|
|
40082
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file-dev-engines (ubuntu-latest)
|
1
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file-dev-engines:
name: version-file-dev-engines (ubuntu-latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/package-dev-engines.json
- name: Verify node
run: __tests__/verify-node.sh 26
strategy:
fail-fast: "false"
matrix:
os:
- ubuntu-latest
...
|
version-file-dev-engines
|
null
|
["ubuntu-latest"]
|
33289
|
1
|
1791846860
|
1791846865
|
1791844717
|
1791846865
|
|
0
|
|
0
|
Edit
Delete
|
|
40083
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file-dev-engines (windows-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file-dev-engines:
name: version-file-dev-engines (windows-latest)
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/package-dev-engines.json
- name: Verify node
run: __tests__/verify-node.sh 26
strategy:
fail-fast: "false"
matrix:
os:
- windows-latest
...
|
version-file-dev-engines
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950480
|
|
0
|
|
0
|
Edit
Delete
|
|
40084
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file-volta (macos-15-intel)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file-volta:
name: version-file-volta (macos-15-intel)
runs-on: macos-15-intel
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/package-volta.json
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
os:
- macos-15-intel
...
|
version-file-volta
|
null
|
["macos-15-intel"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950480
|
|
0
|
|
0
|
Edit
Delete
|
|
40085
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file-volta (macos-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file-volta:
name: version-file-volta (macos-latest)
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/package-volta.json
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
os:
- macos-latest
...
|
version-file-volta
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950480
|
|
0
|
|
0
|
Edit
Delete
|
|
40086
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file-volta (ubuntu-latest)
|
1
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file-volta:
name: version-file-volta (ubuntu-latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/package-volta.json
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
os:
- ubuntu-latest
...
|
version-file-volta
|
null
|
["ubuntu-latest"]
|
33290
|
1
|
1791846865
|
1791846871
|
1791844717
|
1791846871
|
|
0
|
|
0
|
Edit
Delete
|
|
40087
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file-volta (windows-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file-volta:
name: version-file-volta (windows-latest)
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/package-volta.json
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
os:
- windows-latest
...
|
version-file-volta
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950480
|
|
0
|
|
0
|
Edit
Delete
|
|
40088
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file-volta-extends (macos-15-intel)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file-volta-extends:
name: version-file-volta-extends (macos-15-intel)
runs-on: macos-15-intel
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/package-volta-extends.json
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
os:
- macos-15-intel
...
|
version-file-volta-extends
|
null
|
["macos-15-intel"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950480
|
|
0
|
|
0
|
Edit
Delete
|
|
40089
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file-volta-extends (macos-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file-volta-extends:
name: version-file-volta-extends (macos-latest)
runs-on: macos-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/package-volta-extends.json
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
os:
- macos-latest
...
|
version-file-volta-extends
|
null
|
["macos-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950480
|
|
0
|
|
0
|
Edit
Delete
|
|
40090
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file-volta-extends (ubuntu-latest)
|
1
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file-volta-extends:
name: version-file-volta-extends (ubuntu-latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/package-volta-extends.json
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
os:
- ubuntu-latest
...
|
version-file-volta-extends
|
null
|
["ubuntu-latest"]
|
33291
|
1
|
1791846871
|
1791846876
|
1791844717
|
1791846876
|
|
0
|
|
0
|
Edit
Delete
|
|
40091
|
25668
|
137
|
5
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
version-file-volta-extends (windows-latest)
|
0
|
name: versions
"on":
pull_request:
name: versions
"on":
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
version-file-volta-extends:
name: version-file-volta-extends (windows-latest)
runs-on: windows-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
- name: Setup node from node version file
uses: ./
with:
node-version-file: __tests__/data/package-volta-extends.json
- name: Verify node
run: __tests__/verify-node.sh 24
strategy:
fail-fast: "false"
matrix:
os:
- windows-latest
...
|
version-file-volta-extends
|
null
|
["windows-latest"]
|
0
|
3
|
0
|
1791950475
|
1791844717
|
1791950480
|
|
0
|
|
0
|
Edit
Delete
|
|
7849
|
6704
|
6
|
5
|
e112d45af414e4862c0328abad7c4df74d3c1dbf
|
0
|
visual-regression
|
1
|
name: E2E Tests
"on":
# PR validation name: E2E Tests
"on":
# PR validation - 运行关键测试
pull_request:
branches: [main, develop]
paths:
- 'frontend/**'
- 'backend/**'
- 'e2e/**'
- 'package.json'
- 'pnpm-lock.yaml'
# Push to main - 运行完整测试套件
push:
branches: [main]
# 每日定时全量测试 (UTC 时间 00:00 = 北京时间 08:00)
schedule:
- cron: '0 0 * * *'
# 手动触发
workflow_dispatch:
inputs:
test_suite:
description: 'Test suite to run'
required: true
default: 'all'
type: choice
options:
- all
- critical
- business-flows
- visual-regression
- performance
env:
NODE_VERSION: "18"
PNPM_VERSION: "8"
jobs:
visual-regression:
name: visual-regression
runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_suite == 'visual-regression')
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Setup test database
run: |
cd backend
npx prisma migrate deploy
npx prisma db seed
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
- name: Build and start services
run: |
cd backend && npm run build && npm run start &
cd frontend && npm run build && npm run preview &
sleep 15
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
REDIS_URL: redis://localhost:6379
NODE_ENV: test
VITE_API_URL: http://localhost:3000
- name: Install Playwright
run: npx playwright install --with-deps chromium
- name: Run visual regression tests
run: |
cd e2e
npx playwright test tests/visual-regression/ --reporter=html
env:
E2E_BASE_URL: http://localhost:5173
E2E_TEST_USER: admin@juhi.com
E2E_TEST_PASSWORD: Admin@123
- if: always()
name: Upload visual diff results
uses: actions/upload-artifact@v4
with:
name: visual-regression-report
path: |
e2e/playwright-report/
e2e/test-results/
retention-days: "30"
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
name: Update baseline screenshots
run: |
cd e2e
npx playwright test tests/visual-regression/ --update-snapshots
git config user.name "GitHub Actions"
git config user.email "actions@github.com"
git add tests/visual-regression/**/*.png
git commit -m "chore: update visual regression baselines" || echo "No changes"
git push
timeout-minutes: "30"
services:
postgres:
image: postgres:15
env:
POSTGRES_DB: juhi_test
POSTGRES_PASSWORD: test_password
POSTGRES_USER: test_user
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
...
|
visual-regression
|
null
|
["ubuntu-latest"]
|
6756
|
2
|
1773832377
|
1773833155
|
1773831749
|
1773833155
|
|
0
|
|
0
|
Edit
Delete
|
|
7911
|
6714
|
6
|
5
|
b7eb415d7a9689f1efec941bcb2dcd7d098e9c28
|
0
|
visual-regression
|
1
|
name: E2E Tests
"on":
# PR validation name: E2E Tests
"on":
# PR validation - 运行关键测试
pull_request:
branches: [main, develop]
paths:
- 'frontend/**'
- 'backend/**'
- 'e2e/**'
- 'package.json'
- 'pnpm-lock.yaml'
# Push to main - 运行完整测试套件
push:
branches: [main]
# 每日定时全量测试 (UTC 时间 00:00 = 北京时间 08:00)
schedule:
- cron: '0 0 * * *'
# 手动触发
workflow_dispatch:
inputs:
test_suite:
description: 'Test suite to run'
required: true
default: 'all'
type: choice
options:
- all
- critical
- business-flows
- visual-regression
- performance
env:
NODE_VERSION: "18"
PNPM_VERSION: "8"
jobs:
visual-regression:
name: visual-regression
runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_suite == 'visual-regression')
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Setup test database
run: |
cd backend
npx prisma migrate deploy
npx prisma db seed
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
- name: Build and start services
run: |
cd backend && npm run build && npm run start &
cd frontend && npm run build && npm run preview &
sleep 15
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
REDIS_URL: redis://localhost:6379
NODE_ENV: test
VITE_API_URL: http://localhost:3000
- name: Install Playwright
run: npx playwright install --with-deps chromium
- name: Run visual regression tests
run: |
cd e2e
npx playwright test tests/visual-regression/ --reporter=html
env:
E2E_BASE_URL: http://localhost:5173
E2E_TEST_USER: admin@juhi.com
E2E_TEST_PASSWORD: Admin@123
- if: always()
name: Upload visual diff results
uses: actions/upload-artifact@v4
with:
name: visual-regression-report
path: |
e2e/playwright-report/
e2e/test-results/
retention-days: "30"
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
name: Update baseline screenshots
run: |
cd e2e
npx playwright test tests/visual-regression/ --update-snapshots
git config user.name "GitHub Actions"
git config user.email "actions@github.com"
git add tests/visual-regression/**/*.png
git commit -m "chore: update visual regression baselines" || echo "No changes"
git push
timeout-minutes: "30"
services:
postgres:
image: postgres:15
env:
POSTGRES_DB: juhi_test
POSTGRES_PASSWORD: test_password
POSTGRES_USER: test_user
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
...
|
visual-regression
|
null
|
["ubuntu-latest"]
|
6784
|
2
|
1773833002
|
1773833134
|
1773832745
|
1773833134
|
|
0
|
|
0
|
Edit
Delete
|
|
8122
|
6878
|
6
|
5
|
b7eb415d7a9689f1efec941bcb2dcd7d098e9c28
|
0
|
visual-regression
|
1
|
name: E2E Tests
"on":
# PR validation name: E2E Tests
"on":
# PR validation - 运行关键测试
pull_request:
branches: [main, develop]
paths:
- 'frontend/**'
- 'backend/**'
- 'e2e/**'
- 'package.json'
- 'pnpm-lock.yaml'
# Push to main - 运行完整测试套件
push:
branches: [main]
# 每日定时全量测试 (UTC 时间 00:00 = 北京时间 08:00)
schedule:
- cron: '0 0 * * *'
# 手动触发
workflow_dispatch:
inputs:
test_suite:
description: 'Test suite to run'
required: true
default: 'all'
type: choice
options:
- all
- critical
- business-flows
- visual-regression
- performance
env:
NODE_VERSION: "18"
PNPM_VERSION: "8"
jobs:
visual-regression:
name: visual-regression
runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_suite == 'visual-regression')
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Setup test database
run: |
cd backend
npx prisma migrate deploy
npx prisma db seed
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
- name: Build and start services
run: |
cd backend && npm run build && npm run start &
cd frontend && npm run build && npm run preview &
sleep 15
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
REDIS_URL: redis://localhost:6379
NODE_ENV: test
VITE_API_URL: http://localhost:3000
- name: Install Playwright
run: npx playwright install --with-deps chromium
- name: Run visual regression tests
run: |
cd e2e
npx playwright test tests/visual-regression/ --reporter=html
env:
E2E_BASE_URL: http://localhost:5173
E2E_TEST_USER: admin@juhi.com
E2E_TEST_PASSWORD: Admin@123
- if: always()
name: Upload visual diff results
uses: actions/upload-artifact@v4
with:
name: visual-regression-report
path: |
e2e/playwright-report/
e2e/test-results/
retention-days: "30"
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
name: Update baseline screenshots
run: |
cd e2e
npx playwright test tests/visual-regression/ --update-snapshots
git config user.name "GitHub Actions"
git config user.email "actions@github.com"
git add tests/visual-regression/**/*.png
git commit -m "chore: update visual regression baselines" || echo "No changes"
git push
timeout-minutes: "30"
services:
postgres:
image: postgres:15
env:
POSTGRES_DB: juhi_test
POSTGRES_PASSWORD: test_password
POSTGRES_USER: test_user
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
...
|
visual-regression
|
null
|
["ubuntu-latest"]
|
7004
|
4
|
1773878784
|
1773878784
|
1773878413
|
1773878785
|
|
0
|
|
0
|
Edit
Delete
|
|
8274
|
6997
|
6
|
5
|
bd59e5501292cb061719f669c7a7b7afd4f1a0b7
|
0
|
visual-regression
|
1
|
name: E2E Tests
"on":
# PR validation name: E2E Tests
"on":
# PR validation - 运行关键测试
pull_request:
branches: [main, develop]
paths:
- 'frontend/**'
- 'backend/**'
- 'e2e/**'
- 'package.json'
- 'pnpm-lock.yaml'
# Push to main - 运行完整测试套件
push:
branches: [main]
# 每日定时全量测试 (UTC 时间 00:00 = 北京时间 08:00)
schedule:
- cron: '0 0 * * *'
# 手动触发
workflow_dispatch:
inputs:
test_suite:
description: 'Test suite to run'
required: true
default: 'all'
type: choice
options:
- all
- critical
- business-flows
- visual-regression
- performance
env:
NODE_VERSION: "18"
PNPM_VERSION: "8"
jobs:
visual-regression:
name: visual-regression
runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_suite == 'visual-regression')
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Setup test database
run: |
cd backend
npx prisma migrate deploy
npx prisma db seed
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
- name: Build and start services
run: |
cd backend && npm run build && npm run start &
cd frontend && npm run build && npm run preview &
sleep 15
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
REDIS_URL: redis://localhost:6379
NODE_ENV: test
VITE_API_URL: http://localhost:3000
- name: Install Playwright
run: npx playwright install --with-deps chromium
- name: Run visual regression tests
run: |
cd e2e
npx playwright test tests/visual-regression/ --reporter=html
env:
E2E_BASE_URL: http://localhost:5173
E2E_TEST_USER: admin@juhi.com
E2E_TEST_PASSWORD: Admin@123
- if: always()
name: Upload visual diff results
uses: actions/upload-artifact@v4
with:
name: visual-regression-report
path: |
e2e/playwright-report/
e2e/test-results/
retention-days: "30"
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
name: Update baseline screenshots
run: |
cd e2e
npx playwright test tests/visual-regression/ --update-snapshots
git config user.name "GitHub Actions"
git config user.email "actions@github.com"
git add tests/visual-regression/**/*.png
git commit -m "chore: update visual regression baselines" || echo "No changes"
git push
timeout-minutes: "30"
services:
postgres:
image: postgres:15
env:
POSTGRES_DB: juhi_test
POSTGRES_PASSWORD: test_password
POSTGRES_USER: test_user
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
...
|
visual-regression
|
null
|
["ubuntu-latest"]
|
7137
|
2
|
1773913069
|
1773913220
|
1773912913
|
1773913220
|
|
0
|
|
0
|
Edit
Delete
|
|
8332
|
7005
|
6
|
5
|
01a8ea9191c28b210d2abb3db3cbc65db42fc801
|
0
|
visual-regression
|
1
|
name: E2E Tests
"on":
# PR validation name: E2E Tests
"on":
# PR validation - 运行关键测试
pull_request:
branches: [main, develop]
paths:
- 'frontend/**'
- 'backend/**'
- 'e2e/**'
- 'package.json'
- 'pnpm-lock.yaml'
# Push to main - 运行完整测试套件
push:
branches: [main]
# 每日定时全量测试 (UTC 时间 00:00 = 北京时间 08:00)
schedule:
- cron: '0 0 * * *'
# 手动触发
workflow_dispatch:
inputs:
test_suite:
description: 'Test suite to run'
required: true
default: 'all'
type: choice
options:
- all
- critical
- business-flows
- visual-regression
- performance
env:
NODE_VERSION: "18"
PNPM_VERSION: "8"
jobs:
visual-regression:
name: visual-regression
runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_suite == 'visual-regression')
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Setup test database
run: |
cd backend
npx prisma migrate deploy
npx prisma db seed
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
- name: Build and start services
run: |
cd backend && npm run build && npm run start &
cd frontend && npm run build && npm run preview &
sleep 15
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
REDIS_URL: redis://localhost:6379
NODE_ENV: test
VITE_API_URL: http://localhost:3000
- name: Install Playwright
run: npx playwright install --with-deps chromium
- name: Run visual regression tests
run: |
cd e2e
npx playwright test tests/visual-regression/ --reporter=html
env:
E2E_BASE_URL: http://localhost:5173
E2E_TEST_USER: admin@juhi.com
E2E_TEST_PASSWORD: Admin@123
- if: always()
name: Upload visual diff results
uses: actions/upload-artifact@v4
with:
name: visual-regression-report
path: |
e2e/playwright-report/
e2e/test-results/
retention-days: "30"
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
name: Update baseline screenshots
run: |
cd e2e
npx playwright test tests/visual-regression/ --update-snapshots
git config user.name "GitHub Actions"
git config user.email "actions@github.com"
git add tests/visual-regression/**/*.png
git commit -m "chore: update visual regression baselines" || echo "No changes"
git push
timeout-minutes: "30"
services:
postgres:
image: postgres:15
env:
POSTGRES_DB: juhi_test
POSTGRES_PASSWORD: test_password
POSTGRES_USER: test_user
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
...
|
visual-regression
|
null
|
["ubuntu-latest"]
|
7152
|
2
|
1773914004
|
1773914034
|
1773913346
|
1773914035
|
|
0
|
|
0
|
Edit
Delete
|
|
8467
|
7070
|
6
|
5
|
9771b23ae7aaee164f15f9c4ccbdb18eb68fc71f
|
0
|
visual-regression
|
1
|
name: E2E Tests
"on":
# PR validation name: E2E Tests
"on":
# PR validation - 运行关键测试
pull_request:
branches: [main, develop]
paths:
- 'frontend/**'
- 'backend/**'
- 'e2e/**'
- 'package.json'
- 'pnpm-lock.yaml'
# Push to main - 运行完整测试套件
push:
branches: [main]
# 每日定时全量测试 (UTC 时间 00:00 = 北京时间 08:00)
schedule:
- cron: '0 0 * * *'
# 手动触发
workflow_dispatch:
inputs:
test_suite:
description: 'Test suite to run'
required: true
default: 'all'
type: choice
options:
- all
- critical
- business-flows
- visual-regression
- performance
env:
NODE_VERSION: "18"
PNPM_VERSION: "8"
jobs:
visual-regression:
name: visual-regression
runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_suite == 'visual-regression')
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Setup test database
run: |
cd backend
npx prisma migrate deploy
npx prisma db seed
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
- name: Build and start services
run: |
cd backend && npm run build && npm run start &
cd frontend && npm run build && npm run preview &
sleep 15
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
REDIS_URL: redis://localhost:6379
NODE_ENV: test
VITE_API_URL: http://localhost:3000
- name: Install Playwright
run: npx playwright install --with-deps chromium
- name: Run visual regression tests
run: |
cd e2e
npx playwright test tests/visual-regression/ --reporter=html
env:
E2E_BASE_URL: http://localhost:5173
E2E_TEST_USER: admin@juhi.com
E2E_TEST_PASSWORD: Admin@123
- if: always()
name: Upload visual diff results
uses: actions/upload-artifact@v4
with:
name: visual-regression-report
path: |
e2e/playwright-report/
e2e/test-results/
retention-days: "30"
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
name: Update baseline screenshots
run: |
cd e2e
npx playwright test tests/visual-regression/ --update-snapshots
git config user.name "GitHub Actions"
git config user.email "actions@github.com"
git add tests/visual-regression/**/*.png
git commit -m "chore: update visual regression baselines" || echo "No changes"
git push
timeout-minutes: "30"
services:
postgres:
image: postgres:15
env:
POSTGRES_DB: juhi_test
POSTGRES_PASSWORD: test_password
POSTGRES_USER: test_user
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
...
|
visual-regression
|
null
|
["ubuntu-latest"]
|
7275
|
2
|
1773929645
|
1773929778
|
1773929408
|
1773929778
|
|
0
|
|
0
|
Edit
Delete
|
|
8576
|
7115
|
6
|
5
|
979d9c81063fbda12f1445bf80b0c0027b0fbac2
|
0
|
visual-regression
|
1
|
name: E2E Tests
"on":
# PR validation name: E2E Tests
"on":
# PR validation - 运行关键测试
pull_request:
branches: [main, develop]
paths:
- 'frontend/**'
- 'backend/**'
- 'e2e/**'
- 'package.json'
- 'pnpm-lock.yaml'
# Push to main - 运行完整测试套件
push:
branches: [main]
# 每日定时全量测试 (UTC 时间 00:00 = 北京时间 08:00)
schedule:
- cron: '0 0 * * *'
# 手动触发
workflow_dispatch:
inputs:
test_suite:
description: 'Test suite to run'
required: true
default: 'all'
type: choice
options:
- all
- critical
- business-flows
- visual-regression
- performance
env:
NODE_VERSION: "18"
PNPM_VERSION: "8"
jobs:
visual-regression:
name: visual-regression
runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_suite == 'visual-regression')
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Setup test database
run: |
cd backend
npx prisma migrate deploy
npx prisma db seed
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
- name: Build and start services
run: |
cd backend && npm run build && npm run start &
cd frontend && npm run build && npm run preview &
sleep 15
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
REDIS_URL: redis://localhost:6379
NODE_ENV: test
VITE_API_URL: http://localhost:3000
- name: Install Playwright
run: npx playwright install --with-deps chromium
- name: Run visual regression tests
run: |
cd e2e
npx playwright test tests/visual-regression/ --reporter=html
env:
E2E_BASE_URL: http://localhost:5173
E2E_TEST_USER: admin@juhi.com
E2E_TEST_PASSWORD: Admin@123
- if: always()
name: Upload visual diff results
uses: actions/upload-artifact@v4
with:
name: visual-regression-report
path: |
e2e/playwright-report/
e2e/test-results/
retention-days: "30"
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
name: Update baseline screenshots
run: |
cd e2e
npx playwright test tests/visual-regression/ --update-snapshots
git config user.name "GitHub Actions"
git config user.email "actions@github.com"
git add tests/visual-regression/**/*.png
git commit -m "chore: update visual regression baselines" || echo "No changes"
git push
timeout-minutes: "30"
services:
postgres:
image: postgres:15
env:
POSTGRES_DB: juhi_test
POSTGRES_PASSWORD: test_password
POSTGRES_USER: test_user
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
...
|
visual-regression
|
null
|
["ubuntu-latest"]
|
7374
|
2
|
1773940005
|
1773940125
|
1773939781
|
1773940125
|
|
0
|
|
0
|
Edit
Delete
|
|
8706
|
7207
|
6
|
5
|
979d9c81063fbda12f1445bf80b0c0027b0fbac2
|
0
|
visual-regression
|
1
|
name: E2E Tests
"on":
# PR validation name: E2E Tests
"on":
# PR validation - 运行关键测试
pull_request:
branches: [main, develop]
paths:
- 'frontend/**'
- 'backend/**'
- 'e2e/**'
- 'package.json'
- 'pnpm-lock.yaml'
# Push to main - 运行完整测试套件
push:
branches: [main]
# 每日定时全量测试 (UTC 时间 00:00 = 北京时间 08:00)
schedule:
- cron: '0 0 * * *'
# 手动触发
workflow_dispatch:
inputs:
test_suite:
description: 'Test suite to run'
required: true
default: 'all'
type: choice
options:
- all
- critical
- business-flows
- visual-regression
- performance
env:
NODE_VERSION: "18"
PNPM_VERSION: "8"
jobs:
visual-regression:
name: visual-regression
runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_suite == 'visual-regression')
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Setup test database
run: |
cd backend
npx prisma migrate deploy
npx prisma db seed
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
- name: Build and start services
run: |
cd backend && npm run build && npm run start &
cd frontend && npm run build && npm run preview &
sleep 15
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
REDIS_URL: redis://localhost:6379
NODE_ENV: test
VITE_API_URL: http://localhost:3000
- name: Install Playwright
run: npx playwright install --with-deps chromium
- name: Run visual regression tests
run: |
cd e2e
npx playwright test tests/visual-regression/ --reporter=html
env:
E2E_BASE_URL: http://localhost:5173
E2E_TEST_USER: admin@juhi.com
E2E_TEST_PASSWORD: Admin@123
- if: always()
name: Upload visual diff results
uses: actions/upload-artifact@v4
with:
name: visual-regression-report
path: |
e2e/playwright-report/
e2e/test-results/
retention-days: "30"
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
name: Update baseline screenshots
run: |
cd e2e
npx playwright test tests/visual-regression/ --update-snapshots
git config user.name "GitHub Actions"
git config user.email "actions@github.com"
git add tests/visual-regression/**/*.png
git commit -m "chore: update visual regression baselines" || echo "No changes"
git push
timeout-minutes: "30"
services:
postgres:
image: postgres:15
env:
POSTGRES_DB: juhi_test
POSTGRES_PASSWORD: test_password
POSTGRES_USER: test_user
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
...
|
visual-regression
|
null
|
["ubuntu-latest"]
|
7515
|
4
|
1773964932
|
1773964932
|
1773964833
|
1773964932
|
|
0
|
|
0
|
Edit
Delete
|
|
8765
|
7233
|
6
|
5
|
0900b15d607e5c78f97fec16a73357ad4f814390
|
0
|
visual-regression
|
1
|
name: E2E Tests
"on":
# PR validation name: E2E Tests
"on":
# PR validation - 运行关键测试
pull_request:
branches: [main, develop]
paths:
- 'frontend/**'
- 'backend/**'
- 'e2e/**'
- 'package.json'
- 'pnpm-lock.yaml'
# Push to main - 运行完整测试套件
push:
branches: [main]
# 每日定时全量测试 (UTC 时间 00:00 = 北京时间 08:00)
schedule:
- cron: '0 0 * * *'
# 手动触发
workflow_dispatch:
inputs:
test_suite:
description: 'Test suite to run'
required: true
default: 'all'
type: choice
options:
- all
- critical
- business-flows
- visual-regression
- performance
env:
NODE_VERSION: "18"
PNPM_VERSION: "8"
jobs:
visual-regression:
name: visual-regression
runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_suite == 'visual-regression')
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Setup test database
run: |
cd backend
npx prisma migrate deploy
npx prisma db seed
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
- name: Build and start services
run: |
cd backend && npm run build && npm run start &
cd frontend && npm run build && npm run preview &
sleep 15
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
REDIS_URL: redis://localhost:6379
NODE_ENV: test
VITE_API_URL: http://localhost:3000
- name: Install Playwright
run: npx playwright install --with-deps chromium
- name: Run visual regression tests
run: |
cd e2e
npx playwright test tests/visual-regression/ --reporter=html
env:
E2E_BASE_URL: http://localhost:5173
E2E_TEST_USER: admin@juhi.com
E2E_TEST_PASSWORD: Admin@123
- if: always()
name: Upload visual diff results
uses: actions/upload-artifact@v4
with:
name: visual-regression-report
path: |
e2e/playwright-report/
e2e/test-results/
retention-days: "30"
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
name: Update baseline screenshots
run: |
cd e2e
npx playwright test tests/visual-regression/ --update-snapshots
git config user.name "GitHub Actions"
git config user.email "actions@github.com"
git add tests/visual-regression/**/*.png
git commit -m "chore: update visual regression baselines" || echo "No changes"
git push
timeout-minutes: "30"
services:
postgres:
image: postgres:15
env:
POSTGRES_DB: juhi_test
POSTGRES_PASSWORD: test_password
POSTGRES_USER: test_user
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
...
|
visual-regression
|
null
|
["ubuntu-latest"]
|
7553
|
2
|
1774221211
|
1774221334
|
1774220985
|
1774221335
|
|
0
|
|
0
|
Edit
Delete
|
|
8841
|
7250
|
6
|
5
|
80c2bdb2f93a19aa53d16ded06387b70c6084bf8
|
0
|
visual-regression
|
1
|
name: E2E Tests
"on":
# PR validation name: E2E Tests
"on":
# PR validation - 运行关键测试
pull_request:
branches: [main, develop]
paths:
- 'frontend/**'
- 'backend/**'
- 'e2e/**'
- 'package.json'
- 'pnpm-lock.yaml'
# Push to main - 运行完整测试套件
push:
branches: [main]
# 每日定时全量测试 (UTC 时间 00:00 = 北京时间 08:00)
schedule:
- cron: '0 0 * * *'
# 手动触发
workflow_dispatch:
inputs:
test_suite:
description: 'Test suite to run'
required: true
default: 'all'
type: choice
options:
- all
- critical
- business-flows
- visual-regression
- performance
env:
NODE_VERSION: "18"
PNPM_VERSION: "8"
jobs:
visual-regression:
name: visual-regression
runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_suite == 'visual-regression')
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Setup test database
run: |
cd backend
npx prisma migrate deploy
npx prisma db seed
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
- name: Build and start services
run: |
cd backend && npm run build && npm run start &
cd frontend && npm run build && npm run preview &
sleep 15
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
REDIS_URL: redis://localhost:6379
NODE_ENV: test
VITE_API_URL: http://localhost:3000
- name: Install Playwright
run: npx playwright install --with-deps chromium
- name: Run visual regression tests
run: |
cd e2e
npx playwright test tests/visual-regression/ --reporter=html
env:
E2E_BASE_URL: http://localhost:5173
E2E_TEST_USER: admin@juhi.com
E2E_TEST_PASSWORD: Admin@123
- if: always()
name: Upload visual diff results
uses: actions/upload-artifact@v4
with:
name: visual-regression-report
path: |
e2e/playwright-report/
e2e/test-results/
retention-days: "30"
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
name: Update baseline screenshots
run: |
cd e2e
npx playwright test tests/visual-regression/ --update-snapshots
git config user.name "GitHub Actions"
git config user.email "actions@github.com"
git add tests/visual-regression/**/*.png
git commit -m "chore: update visual regression baselines" || echo "No changes"
git push
timeout-minutes: "30"
services:
postgres:
image: postgres:15
env:
POSTGRES_DB: juhi_test
POSTGRES_PASSWORD: test_password
POSTGRES_USER: test_user
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
...
|
visual-regression
|
null
|
["ubuntu-latest"]
|
7621
|
2
|
1774223156
|
1774223273
|
1774223020
|
1774223273
|
|
0
|
|
0
|
Edit
Delete
|
|
8912
|
7262
|
6
|
5
|
df7b6f46170cb46db4771dd1e07991b0b13d90a0
|
0
|
visual-regression
|
1
|
name: E2E Tests
"on":
# PR validation name: E2E Tests
"on":
# PR validation - 运行关键测试
pull_request:
branches: [main, develop]
paths:
- 'frontend/**'
- 'backend/**'
- 'e2e/**'
- 'package.json'
- 'pnpm-lock.yaml'
# Push to main - 运行完整测试套件
push:
branches: [main]
# 每日定时全量测试 (UTC 时间 00:00 = 北京时间 08:00)
schedule:
- cron: '0 0 * * *'
# 手动触发
workflow_dispatch:
inputs:
test_suite:
description: 'Test suite to run'
required: true
default: 'all'
type: choice
options:
- all
- critical
- business-flows
- visual-regression
- performance
env:
NODE_VERSION: "18"
PNPM_VERSION: "8"
jobs:
visual-regression:
name: visual-regression
runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_suite == 'visual-regression')
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: "0"
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Setup test database
run: |
cd backend
npx prisma migrate deploy
npx prisma db seed
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
- name: Build and start services
run: |
cd backend && npm run build && npm run start &
cd frontend && npm run build && npm run preview &
sleep 15
env:
DATABASE_URL: postgresql://test_user:test_password@localhost:5432/juhi_test
REDIS_URL: redis://localhost:6379
NODE_ENV: test
VITE_API_URL: http://localhost:3000
- name: Install Playwright
run: npx playwright install --with-deps chromium
- name: Run visual regression tests
run: |
cd e2e
npx playwright test tests/visual-regression/ --reporter=html
env:
E2E_BASE_URL: http://localhost:5173
E2E_TEST_USER: admin@juhi.com
E2E_TEST_PASSWORD: Admin@123
- if: always()
name: Upload visual diff results
uses: actions/upload-artifact@v4
with:
name: visual-regression-report
path: |
e2e/playwright-report/
e2e/test-results/
retention-days: "30"
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
name: Update baseline screenshots
run: |
cd e2e
npx playwright test tests/visual-regression/ --update-snapshots
git config user.name "GitHub Actions"
git config user.email "actions@github.com"
git add tests/visual-regression/**/*.png
git commit -m "chore: update visual regression baselines" || echo "No changes"
git push
timeout-minutes: "30"
services:
postgres:
image: postgres:15
env:
POSTGRES_DB: juhi_test
POSTGRES_PASSWORD: test_password
POSTGRES_USER: test_user
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
redis:
image: redis:7
ports:
- 6379:6379
options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5
...
|
visual-regression
|
null
|
["ubuntu-latest"]
|
7682
|
2
|
1774223645
|
1774223768
|
1774223517
|
1774223769
|
|
0
|
|
0
|
Edit
Delete
|