如何从一个阶段中读取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