Pipeline 分支与Pull请求
在上一节一个Jenkinsfile可能被签入源代码控制实施。本节将介绍多支Pipeline的概念, 该Jenkinsfile基础是在Jenkins提供更多动态和自动功能的基础上建立的。
创建多分支Pipeline
多分支Pipeline项目类型使您可以实现不同Jenkinsfiles在同一个项目的不同分支。在Multibranch Pipeline项目中,Jenkins自动发现,Pipeline和执行包含Jenkinsfile源代码控制的分支Pipeline。
这不需要手动Pipeline创建和管理。
创建多分支Pipeline:
- 单击Jenkins主页上的New Item。
- 输入Pipeline的名称,选择多Multibranch Pipeline,然后单击确定
Jenkins使用Pipeline的名称在磁盘上创建目录。包含空格的Pipeline名称可能会发现不希望路径包含空格的脚本中的错误。
- 添加分支源(例如,Git)并输入存储库的位置。
- 保存多分支Pipeline项目。
一旦保存,Jenkins自动扫描指定的存储库,并为其中包含了库中的每个分支合适的项目 Jenkinsfile。
默认情况下,Jenkins不会自动重新索引存储库以进行分支添加或删除(除非使用组织文件夹),因此配置多分支Pipeline在配置中定期重新建立索引通常很有用:
附加环境变量
Multibranch Pipeline公开了通过env全局变量构建的分支的附加信息,例如:
- BRANCH_NAME
例如,该Pipeline正在执行的分支的名称
master
。- CHANGE_ID
对应于某种改变请求的标识符,例如拉请求号
其他环境变量列在“ 全局变量引用”中。
支持Pull请求
通过“GitHub”或“Bitbucket”分支源,多分支Pipeline可用于验证拉/更改请求。该功能分别由 GitHub分支源 和 Bitbucket分支源 插件提供。有关如何使用这些插件的更多信息,请参阅他们的文档。
Using Organization Folders
组织文件夹使Jenkins监视整个GitHub组织或Bitbucket团队/项目,并自动创建包含分支和拉请求的存储库的新的多支路Pipeline Jenkinsfile。
目前,此功能仅适用于GitHub和Bitbucket,具有由 GitHub组织文件夹 和 Bitbucket Branch Source 插件提供的功能。