首页/开发/CI/CD 与发布速查/Jenkins parallel 并行阶段
工具链要点63 条

Jenkins parallel 并行阶段

并行执行多个阶段:缩短流水线时长;failFast 控制一个分支失败时是否取消其他分支。

CI/CD 与发布速查开发更新于 2026-10-13

parallel 是什么

并行执行多个阶段:把互不依赖的测试与检查同时跑,缩短流水线整体时长;failFast 控制某个分支失败时是否取消其他分支。串行与并行是取舍:并行缩短墙钟时间,但会让失败定位更复杂、资源峰值更高;先并行最独立、最长的那部分。并行分支各自占用一个执行器,容量不足时排队等待反而更慢,并行度要与执行器数量匹配。

基本信息

写法parallel { stage ... }
failFasttrue 时一个分支失败立即取消其余分支
失败处理默认其余分支继续跑完,failFast 改变默认
资源每个并行分支占用一个执行器
工作区默认共享,同目录写入会互相覆盖
对比与 matrix 的维度展开语义不同

典型使用场景

  • 测试分片:单元与集成测试互不依赖,同时跑缩短反馈
  • 多平台验证:Linux 与 Windows 检查同时进行
  • 静态检查与测试并行:lint、扫描与测试同时启动
  • 快速失败:冒烟分支失败时 failFast 立即终止其余分支
  • 资源分级:慢而独立的集成测试组并行,快的静态检查串行前置
  • 发布前置:构建与安全扫描并行,两者都过才进入部署
  • 跨架构构建:amd64 与 arm64 镜像构建并行

并行测试

并行测试
stage('tests') {
  failFast true   // 任一分支失败即取消其余
  parallel {
    stage('unit') { steps { sh 'make unit' } }
    stage('integration') { steps { sh 'make integration' } }
    stage('lint') { steps { sh 'make lint' } }
  }
}

与 matrix 的区别

维度parallelmatrix
定义方式手工列举 stage按轴自动组合
分支数量固定几个轴值的笛卡尔积
适用场景已知的几类任务平台与版本组合较多的场景
并行分支日志交错:各自写独立日志文件更利于定位失败。
parallel 里每个分支是完整阶段:可在分支内独立声明 agent 与 when 条件。
执行器数量少于分支数量时会出现明显排队:看排队区长度再调整并行度。

易错点

  • 并行数超过执行器容量:等待排队反而比串行更慢
  • 并行任务争用端口与数据库:先做资源隔离再并行
  • 并行分支共享工作区:读写同一目录互相踩踏,分配不同 agent 或子目录
  • 误以为 failFast 会终止整条流水线:它只取消同组并行分支,外层阶段照常继续
  • 并行分支数量长期不复查:节点扩容或缩减后并行度偏离最佳值,白等或白跑

数据来源与参考

  • Jenkins 手册《Pipeline Syntax》(parallel)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌