如何從一個階段中讀取YAML文件中的數據並在另一個階段或階段之外使用它?Jenkins管道從yaml讀取
pipeline {
agent any
environment {
MY_ENV_VAR1 = 'VALUE1'
}
parameters {
string(name: 'DEPLOY_ENV', defaultValue: 'staging', description: 'Environment to deploy on')
booleanParam(name: 'DEBUG_BUILD', defaultValue: true, description: 'Debug the build')
}
stages {
stage('Stage1') {
steps {
script {
def datas = readYaml file: 'release.yml'
echo "Got version as ${datas.version} "
}
echo "Deploying to ${params.DEPLOY_ENV} with debug=${params.DEBUG_BUILD}"
}
}
stage('Stage 2') {
steps {
sh 'run.sh datas.version'
}
}
}
}
我想訪問$ {} datas.version裏面的Stage 2
步驟,在Stage 1
是牽強。
我想保持我的管道定義儘可能的聲明。 如果我正確閱讀docs,只能在舞臺中添加腳本部分。我在全球管道級嘗試了這一點,但得到了錯誤Undefined section "script" at line 10
。
我說只是datas = readYaml file: 'release.yml'
在管道的水平,但得到一個錯誤說Not a valid section definition: "datas = readYaml file: 'release.yml'". Some extra configuration is required line 10, column 3.
什麼是正確的方法來一次讀取該文件,然後使用在任何階段中讀取數據的?
我更新了我的發現在管段定義'readYaml'一部分,但它似乎是一個插件不喜歡的問題。 – Neo
不喜歡什麼?我給的語法與插件無關。這是基本的常規變量範圍。 –
Groovy代碼可能很好,但問題是管道無效。 – Neo