Jenkins管道确定分支是否用于Bitbucket拉取请求
我在用詹金斯和他的同事 一切都很好,但我希望能够运行/排除管道中的某些阶段,这取决于分支是否与拉请求关联,例如:Jenkins管道确定分支是否用于Bitbucket拉取请求,jenkins,jenkins-pipeline,bitbucket,devops,Jenkins,Jenkins Pipeline,Bitbucket,Devops,我在用詹金斯和他的同事 一切都很好,但我希望能够运行/排除管道中的某些阶段,这取决于分支是否与拉请求关联,例如: pipeline { stages { stage('build') { //compile } stage('package') { when { environment name: 'IS_PULL_REQUEST', value: 'true' } //create
pipeline {
stages {
stage('build') {
//compile
}
stage('package') {
when {
environment name: 'IS_PULL_REQUEST', value: 'true'
}
//create deployable package
}
}
}
Jenkins知道分支何时用于PR,因为它将源与目标合并,并在“多分支管道”页面上的“请求”文件夹中显示分支
管道中是否有可用于排除/包括阶段的环境变量?您可以使用
分支机构名称
和更改ID
环境变量来检测请求。从分支运行多分支管道生成时(在创建拉请求之前),将设置以下环境变量:
设置为存储库分支名称(例如env.BRANCH\u NAME
)develope
为env.CHANGE\u分支
null
为env.CHANGE\u ID
null
设置为PR-\d+名称(例如env.BRANCH\u NAME
)PR-11
设置为真实的分支名称(例如env.CHANGE\u BRANCH
)develope
设置为拉取请求ID(例如env.CHANGE\u ID
)11
条件来检测拉动请求:
什么时候{
表情{
//对于拉取请求为True,否则为false。
环境更改\u ID和环境分支\u名称.startsWith(“PR-”)
}
}
在声明性管道中,您还可以使用when
指令中的内置条件changeRequest
来确定分支是否与请求关联
stage('package') {
when {
changeRequest()
}
//create deployable package
}
您还可以检查拉取请求是否针对特定分支:
stage('package') {
when {
changeRequest target: 'master'
}
//create deployable package
}
看