Jenkins: Base64 Encode JSON



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()

最新更新