git - 获取触发 Jenkins 构建的 Git 分支名称
问题描述
我有一个 Jenkins 文件和一个 Git Hook,只要在任何分支中提交代码,就会触发 Jenkins 构建。
我希望打印触发 Jenkins 构建的分支名称。
在checkout
下面的阶段中,我尝试打印分支名称,但它打印“Null”println git_params["GIT_BRANCH"]
而不是提交代码并触发 Jenkins 构建的分支名称。
pipeline {
agent any
environment {
GIT_CRED_ID = 'SVC-JENKINS-ADM'
GIT_REPO = 'https://bitbucket.hmc.com/scm/mh/docker.git'
}
stages {
stage('checkout') {
steps {
script {
def git_params = checkout([$class: 'GitSCM'])
println(git_params)
println 'Getting current Branch'
println git_params['GIT_BRANCH']
}
}
}
stage('DEV') {
agent any
steps {
script {
timeout(time: 25, unit: 'MINUTES') {
waitUntil {
try {
node() {
timestamps {
task 'Build Environment Setup'
//Loading environment variables
checkout([
$class: 'GitSCM',
branches: [
[name: '*/develop']
],
[$class: 'WipeWorkspace'],
],
userRemoteConfigs: [[credentialsId: env.GIT_CRED_ID, url: env.GIT_REPO]]
)
dir('temp1') {
checkout([
$class: 'GitSCM',
branches: [
[name: '*/master']
],
userRemoteConfigs: [[credentialsId: env.GIT_CRED_ID, url: env.GIT_REPO]]
])
}
load "temp1/${APP_NAME}_${env.ENV}_EnvFile"
env.APP_VERSION = sh(script: 'temp1/git_version.sh', returnStdout: true).toString().trim()
sh 'echo REL#=$APP_VERSION'
}
}
emailext attachLog: true, body: "PIPELINE SUCCESS - ${JOB_URL} \n Check the full log here", subject: "PIPELINE SUCCESS - ${env.ENV.toUpperCase()} - ${currentBuild.fullDisplayName}", recipientProviders: [developers(), requestor()], to: "$EMAIL_DEPLOYERS"
return true
}
catch (error) {
echo "Failed in stage : ${env.ENV.toUpperCase()}"
emailext attachLog: true, body: "PIPELINE FAILED - ${JOB_URL} \n Check the full log here", subject: "PIPELINE FAILED - ${env.ENV.toUpperCase()} - ${currentBuild.fullDisplayName}", to: "$EMAIL_DEPLOYERS"
throw error
return false
System.exit(0)
}
}
}
}
}
}
}
}
注意:在调试日志中,分支名称被打印出来,但我无法println git_params["GIT_BRANCH"]
明确使用它来打印它。
你能建议吗?
解决方案
您是否尝试过像这样使用 GIT_BRANCH
println GIT_BRANCH
GIT_BRANCH 作为内置环境变量注入
推荐阅读
- javascript - 在生成表格以划分从 jquery 生成的意外代码时
- java - 事件驱动在 Spring MVC 中继续请求线程执行
- jquery - 如何使用jquery在按钮单击时显示和隐藏div
- java - 替换Java中的正则表达式匹配
- asp.net-core - 使用 grant_type 作为密码在 .net 核心 Web API 中验证并获取 Azure AD 令牌
- meteor - 我应该使用什么“逻辑查询运算符/s”来合并两个单独的查询?
- python - 关于tensorflow导入错误
- postgresql - PostgreSQL - 隐式事务模拟
- sqlite - 如何根据 SQLITE 中表 b 中的值更新表列?
- python - 如何修复 Python django 中的无效语法未知错误?