捕获Jenkins Pipeline的Shell脚本输出

我正在尝试提取git分支并在我的Jenkinsfile中提交信息,如下所示:

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而不是String

回答:

这个完整的管道对您有用吗?使用管道插件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}")

}

}

}

}

}

以上是 捕获Jenkins Pipeline的Shell脚本输出 的全部内容, 来源链接: utcz.com/qa/432844.html

回到顶部