多分支流水线是什么
多分支流水线对仓库里的分支和变更请求自动发现并各自建流水线:每个分支有独立的构建历史与状态,逻辑由仓库中的 Jenkinsfile 定义。一套 Jenkinsfile 通过条件分支覆盖合并请求校验与主干发布两种用途;分支删除后要用清理策略回收任务,避免列表和磁盘被残留项越堆越多。
基本信息
| 发现 | 分支与合并请求自动发现并建流水线 |
|---|---|
| 隔离 | 每个分支独立构建历史与状态 |
| 清理 | 已删分支的流水线需要清理策略回收 |
| 逻辑 | 每个分支读取自己的 Jenkinsfile |
| 场景 | 合并请求校验与主干发布共用一套逻辑 |
| 触发 | 配合 webhook 或轮询及时感知推送 |
按分支区分阶段
按分支区分阶段
pipeline {
agent any
stages {
stage('build') {
steps { sh 'make build' } // 所有分支都跑
}
stage('deploy') {
when { branch 'main' } // 仅主干部署
steps { sh './deploy.sh staging' } // 发布步骤
}
}
}典型使用场景
- 特性分支验证:每个合并请求自动跑构建与测试
- 主干发布:main 分支流水线执行部署动作
- 版本分支维护:release 分支单独跑维护流水线
- 团队拆分:按目录或前缀给不同团队建独立项目
- 清理策略:定期回收已删除分支对应的任务
- 权限控制:按分支限制部署凭据的可见范围
配置项与作用
| 配置 | 作用 | 注意 |
|---|---|---|
| 分支来源 | 指定仓库与凭据 | webhook 未配则发现延迟 |
| 发现策略 | 扫描间隔与过滤 | 全量扫描大仓库可能很重 |
| Jenkinsfile 位置 | 默认仓库根目录 | 路径写错任务建不起来 |
| 孤儿清理 | 删除已失效任务 | 不配置会累积噪音 |
| when 条件 | 分支差异化行为 | 条件写错导致误部署 |
主干发布与合并请求校验的差异交给 when 条件:一套 Jenkinsfile 覆盖两种用途。
删除分支后残留任务:磁盘与列表噪音,需要清理策略。
webhook 未配置时只能靠定时发现:分支推送无法立即触发。
多分支项目的配置随分支层级存放:改配置要在正确层级操作,改错位置只影响单个分支。