我正在尝试编写我的第一个Jenkins共享库,并且我正在努力学习基本的东西 - 获取分支名称。
我能做到:
sh(returnStdout: true, script: 'git rev-parse --abbrev-ref HEAD').trim()
但是,这需要结帐。是否有可能获得分支名称(对于multibranch和freestyle)管道项目?我知道我会使用git,但我想避免做结账(直到有必要)。
答案 0 :(得分:0)
GIT_BRANCH环境变量可以为您提供所需的内容。在Jenkins 2.60和升级的管道模型定义插件之前,它不会在管道中工作。
答案 1 :(得分:0)
如果您正在使用管道作业,则可以
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
}
}
}
// ...
}
}
答案 2 :(得分:0)
我最终使用了这个:
env.CHANGE_BRANCH ?: env.GIT_BRANCH ?: scm.branches[0]?.name?.split('/')[1] ?: 'UNKNOWN'
但是,这需要我批准In-Script Approvals
页面中的几项内容。