[英]How to get branch name in jenkins shared library
我正在尝试编写我的第一个Jenkins共享库,并且正在尝试一些基本的工作-获取分支名称。
我可以做:
sh(returnStdout: true, script: 'git rev-parse --abbrev-ref HEAD').trim()
但是,这需要签出。 是否可以获得分支名称(对于多分支和自由样式)管道项目? 我知道我将使用git,但我想避免进行结帐(除非有必要)。
GIT_BRANCH环境变量应为您提供所需的内容。 直到Jenkins 2.60和升级的管道模型定义插件,它才能在管道中工作。
如果您正在使用管道作业,则可以
pipeline {
// ...
stages {
stage('Setup') {
steps {
script {
// capture scm variables
def scmVars = checkout scm
String branch = scmVars.GIT_BRANCH
// or use the environment variable
branch = env.GIT_BRANCH
}
}
}
// ...
}
}
我最终使用了这个:
env.CHANGE_BRANCH ?: env.GIT_BRANCH ?: scm.branches[0]?.name?.split('/')[1] ?: 'UNKNOWN'
但是,这需要我In-Script Approvals
页面中批准几件事。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.