#json #jenkins #jenkins-pipeline
Вопрос:
Новичок в Дженкинсе и пытается закодировать это на основе 64:
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}"
}
}
Конечно, я получаю ошибку, потому что она содержит двойные кавычки. Есть ли лучший способ сделать это?
Ответ №1:
Мы можем принять возвращаемое значение в переменной с returnStdout за истинное:
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-code-shell-script.
Примечание. Вы также можете добавить encoding: 'UTF-8'
, чтобы явно указать кодировку.
Ответ №2:
Вы также можете сделать:
outgoing_encoded = "echo $outgoing_json".bytes.encodeBase64().toString()