我正在使用通用的webhook触发器从拉取请求中检索分支的名称和哈希。 在管道中,我想合并到一个特定的分支,因此我想提取该分支的名称。
现在,分支名称存储在变量中,如果我回显,则为:refs / heads /
我想执行sh'git merge 有什么方法可以从refs / heads /中提取branch_name?
谢谢
答案 0 :(得分:1)
您可以使用名为BRANCH_NAME
的环境变量来提取分支的名称:
pipeline {
agent any
stages {
stage ('Print branch name') {
steps {
echo "Branch is ${env.BRANCH_NAME}"
}
}
}
}
不过,如果您的PR分支名称为“ PR-1234”,请不要感到惊讶。
如果使用Github并安装Pipeline Github plugin,则有一个名为pullRequest
的变量,可用于获取有关拉取请求和基础分支的信息:
pipeline {
agent any
stages {
stage ('Print branch name') {
steps {
echo "Branch is ${env.BRANCH_NAME}"
script {
if (env.CHANGE_ID) {
echo "This PR is for the ${pullRequest.headRef} branch"
echo "The PR is over the ${pullRequest.base} branch."
}
}
}
}
}
}
答案 1 :(得分:0)
所以我终于找到了一个优雅的解决方案:
def branchName ="ref/head/DevBranch"
`def values = branchName.tokenize('/')
管道{ 代理商... { 回声“ $ {values [2]}” ...