Jenkins的新手,并尝试对其进行base64编码:
stages {
stage('Debug') {
steps {
script {
outgoing_json = '''{
"spec": "1.0.0"
}
'''
outgoing_encoded = sh(returnStdout: true, script: "echo $outgoing_json | base64")
}
echo "outgoing_encoded: ${outgoing_encoded}"
}
}
当然,我得到了一个错误,因为它包含双引号。有更好的方法吗?
我们可以在returnStdout为true的变量中获取返回值:
def ret = sh(script: 'echo $outgoing_json | base64', returnStdout: true, returnStatus: true)
更多信息:https://www.jenkins.io/doc/pipeline/steps/workflow-durable-task-step/#code-sh代码shell脚本
请注意,您还可以添加encoding: 'UTF-8'
来显式指定编码。
您还可以执行:
outgoing_encoded = "echo $outgoing_json".bytes.encodeBase64().toString()