我正在做一个Jenkins多分支项目
- 构建分支时,
BRANCH_NAME
和GIT_BRANCH
被设置为分支的名称(master
),而CHANGE_BRANCH
不存在
BRANCH_NAME=master
GIT_BRANCH=master
CHANGE_BRANCH not exist
- 当建立变更请求时,
CHANGE_BRANCH
被设置为分支名称(feature
),BRANCH_NAME
和GIT_BRANCH
被设置为变更请求名称(PR-01
)。
BRANCH_NAME=PR-01
GIT_BRANCH=PR-01
CHANGE_BRANCH=feature
分支_NAME对于多分支项目,这将被设置为正在构建的分支的名称,例如,如果您希望从主分支而不是从功能分支部署到生产;如果对应于某种变更请求,则名称通常是任意的(参考CHANGE_ID和CHANGE_TARGET)。
GIT_分支远程分支名称(如果有的话)。
CHANGE_分支对于一个多分支项目,对应于某种类型的变更请求,这将被设置为源代码控制系统上的实际头的名称,它可能与BRANCH_NAME不同,也可能没有不同。例如,在GitHub或Bitbucket中,这将具有原始分支的名称,而BRANCH_NAME将类似于PR-24。
在我的声明式管道中,我总是需要分支名称,无论是否构建了更改请求。
目前我用bash中的参数扩展来解决这个问题:sh 'echo branch name: ${CHANGE_BRANCH:-${BRANCH_NAME}}'
有没有一个更面向Jenkins的方法来解决这个问题?
1条答案
按热度按时间q7solyqu1#
构建拉取请求时,会设置一个名为
CHANGE_ID
的变量(设置为PR号)。您可以使用该变量在其他两个变量之间进行选择: