[英]Jenkins - define json using environment variable
我正在嘗試添加一個包含 json 的環境變量,它需要給出部署的分支名稱,如下所示:
stage('Build files') {
agent { label "${AGENT_NAME}"}
environment {
DEPLOYED_BRANCH = '{\"branch\":\"${env.BRANCH_NAME}\"}'
}
steps { //Do something}
ansiColor('xterm') {
sh """
echo \"${DEPLOYED_BRANCH}\" > deployed_branch.json
"""
}
}
部署時,我得到:
"{"branch":"${env.BRANCH_NAME}"}": bad substitution
我用單引號/雙引號嘗試了幾個不同的選項,但沒有成功。 有任何想法嗎?
你可以這樣做,但它將是 deploy_branch.json 文件中的 JSON 字符串(帶有字符串內容的 JSON 文件)
stage('create a JSON ') {
environment {
SOME_ENV_VARS = '{\"branch\":\"$WORKSPACE\"}'
}
steps {
sh """
echo $SOME_ENV_VARS > deployed_branch.json
"""
}
}
可以像這樣更好地完成:
腳本化管道
node {
stage('any') {
def myJSON = readJSON text: '{}'
myJSON.branch = "${env.WORKSPACE}" as String
writeJSON file: "${WORKSPACE}/x.json", json: myJSON
}
}
聲明性管道
pipeline {
agent any;
stages {
stage('create a JSON ') {
steps {
script {
def myJSON = readJSON text: '{}'
myJSON.branch = "${env.WORKSPACE}" as String
writeJSON file: "${WORKSPACE}/x.json", json: myJSON
}
}
}
}
}
注意 - 它需要Jenkins Utility Pluigns
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.