Commit a9af67a1 authored by liguangyu06's avatar liguangyu06
Browse files

spd-ui-verify 默认 full 全量且 WORKERS=2

验证流水线超时改为 6 小时,与全量回归时长匹配。
parent cb9366ce
// 日常验证专用流水线:默认 smoke,超时 2 小时,不设定时、不发邮件;与夜间 SPD/full 任务分离。 // 日常验证专用流水线:默认 full 全量、WORKERS=2,超时 6 小时,不设定时、不发邮件;与夜间 SPD 任务分离。
// Jenkins 任务 Script Path 填 Jenkinsfile.verify // Jenkins 任务 Script Path 填 Jenkinsfile.verify
def runCi() { def runCi() {
...@@ -18,17 +18,17 @@ pipeline { ...@@ -18,17 +18,17 @@ pipeline {
options { options {
timestamps() timestamps()
disableConcurrentBuilds() disableConcurrentBuilds()
timeout(time: 2, unit: 'HOURS') timeout(time: 6, unit: 'HOURS')
buildDiscarder(logRotator(numToKeepStr: '30', artifactNumToKeepStr: '5')) buildDiscarder(logRotator(numToKeepStr: '30', artifactNumToKeepStr: '5'))
} }
parameters { parameters {
choice( choice(
name: 'SUITE', name: 'SUITE',
choices: ['smoke', 'login', 'vendor', 'admit', 'basic', 'surgery', 'warehouse', 'flow', 'center', 'dept', 'nightly', 'full', 'invoice', 'trace', 'consume', 'recon', 'cost', 'warn', 'pol', 'exc', 'ana', 'ops', 'reag', 'invoice-trace', 'recon-cost', 'extended', 'quarantine'], choices: ['full', 'nightly', 'smoke', 'login', 'vendor', 'admit', 'basic', 'surgery', 'warehouse', 'flow', 'center', 'dept', 'invoice', 'trace', 'consume', 'recon', 'cost', 'warn', 'pol', 'exc', 'ana', 'ops', 'reag', 'invoice-trace', 'recon-cost', 'extended', 'quarantine'],
description: '日常验证默认 smoke(@smoke);改脚本后可单模块如 vendor / admit' description: '默认 full 全量回归;可改 smoke / 单模块等'
) )
string(name: 'WORKERS', defaultValue: '3', description: '并行文件数,验证环境建议 2~3') string(name: 'WORKERS', defaultValue: '2', description: '并行文件数,验证任务默认 2')
string(name: 'SHARDS', defaultValue: '1', description: '分片数,日常验证保持 1') string(name: 'SHARDS', defaultValue: '1', description: '分片数,日常验证保持 1')
string(name: 'RETRIES', defaultValue: '0', description: '用例级重试,保持 0') string(name: 'RETRIES', defaultValue: '0', description: '用例级重试,保持 0')
booleanParam(name: 'RUN_FULL', defaultValue: false, description: '含 @full 全列排序(验证任务一般不要勾)') booleanParam(name: 'RUN_FULL', defaultValue: false, description: '含 @full 全列排序(验证任务一般不要勾)')
......
# Jenkins 任务:spd-ui-verify(平时验证脚本) # Jenkins 任务:spd-ui-verify(平时验证脚本)
用于**手工触发**的冒烟/单模块验证,与夜间 `SPD`(full/nightly)分离。 与现有 **`SPD`** 任务在**同一台 Jenkins**(`http://10.17.65.19:8080`)、**同一 Agent、同一套凭据**(`gitlab-spd-ui`、`spd-ui-test-account`),只是流水线脚本换成 `Jenkinsfile.verify`。
**不要**给本任务配 Build periodically(定时);需要时再点 **Build with Parameters**。
**不发邮件**(`Jenkinsfile.verify` 已去掉邮件步骤;报告只看 Jenkins 里的 Playwright Report)。
## 1. 新建任务(约 3 分钟) 用于**手工触发**的冒烟/单模块验证;夜间 **`SPD`** 仍用 `Jenkinsfile` 跑 full/nightly 并**照常发邮件**。
**不要**给 `spd-ui-verify` 配 Build periodically;需要时点 **Build with Parameters**。
**不发邮件**(验证流水线已去掉邮件步骤;报告只看本任务 **Playwright Report**)。
## 1. 新建任务(推荐:复制 SPD)
1. 打开现有任务 **`SPD`** → 左侧 **New Item**(或首页 **新建 Item** → 底部 **Copy from** 填 `SPD`)
2. 新名称:`spd-ui-verify` → **OK**
3. **Configure** 里只改这几项,其余与 `SPD` 保持一致(Git 地址、凭据、节点标签等不用动):
| 要改的项 | 值 |
|----------|-----|
| **Pipeline → Script Path** | **`Jenkinsfile.verify`**(`SPD` 上是 `Jenkinsfile`) |
| **Build Triggers** | **取消**「Build periodically」(不要和 `SPD` 抢同一时段) |
| **构建后操作** | 若有单独配的「发邮件」,**删掉**(验证任务以流水线为准,本身也不发信) |
若不用复制,从零建 Pipeline 也可以,Git 段与 `SPD` 相同,仅 Script Path 不同:
## 1b. 从零新建(与 SPD 相同 Git 配置)
1. Jenkins 首页 → **新建 Item** 1. Jenkins 首页 → **新建 Item**
2. 名称:`spd-ui-verify`(勿与现有 `spd-ui-smoke`、`SPD` 重名) 2. 名称:`spd-ui-verify`
3. 类型:**Pipeline** → **OK** 3. 类型:**Pipeline** → **OK**
4. 拉到最下方 **Pipeline**: 4. 拉到最下方 **Pipeline**(与 **`SPD`** 任务对照填写):
| 项 | 值 | | 项 | 值 |
|----|-----| |----|-----|
...@@ -28,8 +44,8 @@ ...@@ -28,8 +44,8 @@
1. 点 **Build with Parameters** 1. 点 **Build with Parameters**
2. 默认即可: 2. 默认即可:
- **SUITE** = `smoke`(`@smoke` 用例,约数十分钟级) - **SUITE** = `full`(全量回归,与 SPD 夜间套件一致)
- **WORKERS** = `3` - **WORKERS** = `2`
- **SHARDS** = `1` - **SHARDS** = `1`
- **RUN_FULL** = 不勾 - **RUN_FULL** = 不勾
- **KEEP_ARCHIVES** = `0`(少占盘) - **KEEP_ARCHIVES** = `0`(少占盘)
...@@ -66,11 +82,12 @@ SUITE=vendor PW_WORKERS=2 npm run test:ci ...@@ -66,11 +82,12 @@ SUITE=vendor PW_WORKERS=2 npm run test:ci
- Jenkins **只拉 `main`**(正式自动化仓库) - Jenkins **只拉 `main`**(正式自动化仓库)
- 在 `temp` 开发时:先合 selective 到 `main`,或临时把 Branch 改成 `*/temp` 做试验(勿长期这样) - 在 `temp` 开发时:先合 selective 到 `main`,或临时把 Branch 改成 `*/temp` 做试验(勿长期这样)
## 6. 和 spd-ui-smoke 的区别 ## 6. 与 `SPD` / `spd-ui-smoke` 的关系(同一 Jenkins)
| 任务 | Script Path | 默认套件 | 定时 | | 任务 | Script Path | 典型用途 | 定时 | 邮件 |
|------|-------------|----------|------| |------|-------------|----------|------|------|
| `spd-ui-smoke` | `Jenkinsfile` | 需在参数里选 smoke | 可配工作时段 cron | | **`SPD`** | `Jenkinsfile` | 周一三五 23 点 full 等 | 有 | 有 |
| **`spd-ui-verify`** | **`Jenkinsfile.verify`** | **默认 smoke** | **仅手工** | | **`spd-ui-verify`** | **`Jenkinsfile.verify`** | push 后手工验证 | **无** | **无** |
| `spd-ui-smoke`(可选) | `Jenkinsfile` | 工作时段冒烟 | 可选 | 有 |
两者可并存:smoke 负责定时巡检,verify 负责你 push 后随手点一次。 `SPD` 与 `spd-ui-verify` 可共用 `disableConcurrentBuilds`:同时点构建时会排队,不会两套 full 叠在同一 Agent 上。
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
| 任务 | 套件 | 建议 cron | 说明 | | 任务 | 套件 | 建议 cron | 说明 |
|------|------|-----------|------| |------|------|-----------|------|
| **`spd-ui-verify`** | **`smoke`(默认)** | **无(仅手工)** | **平时验证脚本**:Script Path 用 `Jenkinsfile.verify`,见 [jenkins-job-spd-ui-verify.md](./jenkins-job-spd-ui-verify.md) | | **`spd-ui-verify`** | **`full`(默认)** | **无(仅手工)** | **平时验证脚本**:Script Path 用 `Jenkinsfile.verify`,默认 WORKERS=2,见 [jenkins-job-spd-ui-verify.md](./jenkins-job-spd-ui-verify.md) |
| `spd-ui-smoke` | `smoke` | `H 8-18 * * 1-5` | 工作时段冒烟:报表与基础设置中已打 `@smoke` 的用例(含厂商、准入、基础管理、手术、库房、流程) | | `spd-ui-smoke` | `smoke` | `H 8-18 * * 1-5` | 工作时段冒烟:报表与基础设置中已打 `@smoke` 的用例(含厂商、准入、基础管理、手术、库房、流程) |
| `spd-ui-nightly` / `SPD` | `nightly` / `full` | `H 23 * * 1,3,5` | 周一、三、五 **23 点** 回归(Jenkins 任务 `SPD` 当前按此时段跑 full) | | `spd-ui-nightly` / `SPD` | `nightly` / `full` | `H 23 * * 1,3,5` | 周一、三、五 **23 点** 回归(Jenkins 任务 `SPD` 当前按此时段跑 full) |
| `spd-ui-full` | `full` | `H 3 * * 0` | 周末含全列排序,最慢 | | `spd-ui-full` | `full` | `H 3 * * 0` | 周末含全列排序,最慢 |
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment