Jenkins Integration Pipeline Design

张开发
2026/4/16 3:31:59 15 分钟阅读

分享文章

Jenkins Integration Pipeline Design
External Delivery Integration Pipeline — 需求文档 用户指南目录背景与目的系统架构概述Pipeline 角色说明Supervisor Pipeline 需求4.1 功能需求4.2 Pipeline 参数定义4.3 流程阶段描述4.4 测试变体选取逻辑Worker Pipeline 需求5.1 功能需求5.2 Pipeline 参数定义5.3 流程阶段描述5.4 测试模式说明数据流与集成依赖构建结果与通知用户使用指南8.1 自动触发(Zuul 集成)8.2 手动触发8.3 Regate(重新触发测试)8.4 跳过测试(skip-pre-verification)8.5 手动干预通过(manual-intervention-pass)8.6 QL2 远程测试触发错误处理与故障排查术语表1. 背景与目的External Delivery Integration Pipeline 是 CI/CD 系统中的核心集成测试流水线,用于对来自外部交付(External Delivery)的软件包)在真实硬件或 仿真环境上执行自动化集成测试。核心目的:在软件合入代码库前进行Gate测试,对外部软件交付包进行自动化兼容性与功能集成验证。通过 Zuul 门控机制(Gerrit Zuul)与 Jenkins 联动,保障代码质量。支持多种无线模块软件线(SW Line。提供结果上传、日志归档、邮件通知及 MongoDB 数据追踪能力。2. 系统架构概述┌─────────────────────────────────────────────────────────────┐ │ Gerrit / Zuul 触发 │ │ (ZUUL_REF / ZUULEX_COMMIT_MESSAGE 等参数) │ └──────────────────────────┬──────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ Supervisor Pipeline │ │ jenkins-ExternalDelivery-supervisor.jf │ │ │ │ 1. 初始化工作空间 │ │ 2. 解析 SW Line 与 Variant 列表 │ │ 3. 过滤/筛选测试 Variant │ │ 4. 并行触发多个 Worker Job │ └──────┬──────────────┬───────────────────┬───────────────────┘ │ │ │ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │ Worker │ │ Worker │ ... │ Worker │ │ XXQL │ │ XXQC │ │ XXEGHA/XXM9 │ └──────────┘ └──────────┘ └──────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────────────────────────────────────────────────┐ │ Worker Pipeline │ │ jenkins-ExternalDelivery-worker-common.jf │ │ │ │ 1. 初始化工作空间 读取 Commit 消息 │ │ 2. 随机选取测试节点(Slave) │ │ 3. 下载软件包(Artifactory) │ │ 4. 解压软件包 │ │ 5. 执行 Robot Framework 集成测试 │ │ 6. 收集测试日志 │ │ 7. 上传日志到 Artifactory │ │ 8. Post 阶段:通知、标记 Zuul Ref 结果 │ └─────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────┐ │ Artifactory / MongoDB / 邮件 │ │ - 日志 报告归档 (mnprf-rfsw-hwsct-local) │ │ - 测试结果写入 MongoDB │ │ - 成功 Zuul Ref 写入 .txt 到 Artifactory │ │ - 邮件通知相关负责人 │ └─────────────────────────────────────────────────────────────┘3. Pipeline 角色说明角色文件职责Supervisorjenkins-ExternalDelivery-supervisor.jf解析输入参数、筛选测试 Variant、并行触发 Worker JobWorkerjenkins-ExternalDelivery-worker-common.jf针对单个 Variant 执行完整的软件包下载、安装、Robot 测试、日志收集全流程Supervisor 与 Worker 的命名约定:Worker Job 名称由 Supervisor Job 名称派生:普通模式:SupervisorJobName_Variant(如ED_SRM7_XXQL)SRM9 Simics 模式:SupervisorJobName_SIMICS_Variant(如ED_SRM9_SIMICS_A9X0_S)4. Supervisor Pipeline 需求4.1 功能需求ID需求描述SUP-FR-001系统应能从 Jenkins Job 名称中自动解析当前 SW Line。SUP-FR-002系统应支持通过参数VARIANT_SELECTION配置可用的测试变体(Variant)列表。SUP-FR-003系统应根据ZUUL_CHANGES参数中的分支信息动态筛选测试 Variant 范围。SUP-FR-004系统应支持针对 L1 交付类型([pre-bCI][L1])自动缩减测试变体列表(仅保留 XXQL)。SUP-FR-005系统应支持 Regate 场景:解析ZUULEX_CHANGE_COMMENT中的 Variant 关键词,动态调整测试变体。SUP-FR-006系统应支持跳过已在本轮交付中测试通过的变体(skipRetest+ MongoDB 查询)。SUP-FR-007系统应并行触发所有选定 Variant 的 Worker Job,不设置failFast(任意一个失败不中断其他)。SUP-FR-008系统应支持配置最大重试次数(MAX_RETRIES),失败 Worker 可自动重试。SUP-FR-009系统应将 ZUUL 相关参数完整透传至每个 Worker Job。SUP-FR-010系统应在 Post 阶段根据实际构建结果更新 Jenkins 构建状态徽章(badge)。4.2 Pipeline 参数定义参数名类型必填默认值说明VARIANT_SELECTIONString是—可用 Variant 列表,逗号分隔,如XXQL,XXQC,XXQQA,XXKUDMAX_RETRIESString是0

更多文章