Git 从Jenkins管道捕获shell脚本输出
我正在尝试提取git分支并提交我的Jenkins文件中的信息,如下所示:Git 从Jenkins管道捕获shell脚本输出,git,shell,jenkins,groovy,jenkins-pipeline,Git,Shell,Jenkins,Groovy,Jenkins Pipeline,我正在尝试提取git分支并提交我的Jenkins文件中的信息,如下所示: def commit = sh(returnStdout: true, script: 'git rev-parse HEAD').trim() def branch = sh(returnStdout: true, script: 'git rev-parse --abbrev-ref HEAD').trim() 我试着在之后像这样打印它: println("Branch: ${branch}, Commit: ${c
def commit = sh(returnStdout: true, script: 'git rev-parse HEAD').trim()
def branch = sh(returnStdout: true, script: 'git rev-parse --abbrev-ref HEAD').trim()
我试着在之后像这样打印它:
println("Branch: ${branch}, Commit: ${commit}")
我没有得到真正的价值,只剩下以下几点:
Branch: org.jenkinsci.plugins.pipeline.modeldefinition.ClosureModelTranslator@545511bf, Commit: org.jenkinsci.plugins.pipeline.modeldefinition.ClosureModelTranslator@545511bf
我是否做错了什么,如何正确地检索所需的值
编辑:不,建议的副本不是答案,因为我知道用于检索所需信息的shell命令。我的问题是信息以
ClosureModelTranslator
而不是字符串的方式传递给我 这条完整的管道适合你吗?使用管道插件2.4为我工作
pipeline {
agent { label 'docker' }
stages {
stage("test_capture_output_and_print") {
steps {
script {
def commitSha = sh(returnStdout: true, script: 'git rev-parse HEAD').trim()
println("commitSha: ${commitSha}")
}
}
}
}
}
可能的重复如果你想读你声称是重复的帖子,你会注意到它不是重复的@KevinBurnetti试图提供帮助。这个问题的答案对获取分支和提交信息没有帮助吗?正如您可能已经注意到的,我的问题是另一种类型的。我确实在尝试该线程中的建议,但我得到的结果与它应该得到的结果不同。如果执行sh'git rev parse HEAD>commit',是否会得到同样的坏结果;def commit=readFile('commit').trim()
?谢谢。我的错误是试图在脚本闭包之外访问这些值。