如何从一个阶段读取的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'
}
}
}
}
我想访问其中Stage 2
提取的$ {datas.version}内部步骤Stage 1
。
我想让管道定义尽可能保持声明性。如果我正确阅读了文档,则只能在一个阶段内添加脚本部分。我在全局管道级别尝试了此操作,但出现了错误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.
一次读取文件然后在任何阶段使用读取的数据的正确方法是什么?
似乎我需要node
一段有关readYaml
代码的内容。然后,我可以${datas.version}
在所有阶段访问。
node {
datas = readYaml file: 'release.yml'
}
pipeline {
...
}
这是一个正在跟踪的问题JENKINS-40167
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句