我将Jenkins和Bitbucket分支源插件一起使用。
一切都很好,但是我希望能够根据分支是否与拉取请求相关联来在管道中运行/排除某些阶段,例如:
pipeline { stages { stage('build') { //compile } stage('package') { when { environment name: 'IS_PULL_REQUEST', value: 'true' } //create deployable package } } }
Jenkins知道分支何时用于PR,因为它会将源与目标合并,并在多分支管道页面的pull request文件夹中显示分支。
我可以在管道中使用环境变量来排除/包含阶段吗?
您可以使用BRANCH_NAME和CHANGE_ID环境变量来检测请求请求。从分支运行多分支管道构建时(在创建拉取请求之前),将设置以下环境变量:
BRANCH_NAME
CHANGE_ID
env.BRANCH_NAME
develop
env.CHANGE_BRANCH
null
env.CHANGE_ID
但是一旦创建拉取请求,则:
PR-11
11
我when在管道中使用以下条件来检测请求请求:
when
when { expression { // True for pull requests, false otherwise. env.CHANGE_ID && env.BRANCH_NAME.startsWith("PR-") } }