如何在声明性管道中的阶段之间传递变量?
在脚本化管道中,我收集的过程是写入临时文件,然后将文件读入变量。
如何在声明性管道中执行此操作?
例如,我想根据shell操作创建的变量触发不同作业的构建。
stage("stage 1") {
steps {
sh "do_something > var.txt"
// I want to get var.txt into VAR
}
}
stage("stage 2") {
steps {
build job: "job2", parameters[string(name: "var", value: "${VAR})]
}
}
5条答案
按热度按时间chy5wohz1#
如果你想使用一个文件(因为脚本是生成你所需要的值的东西),你可以使用
readFile
,如下所示。如果不想使用,使用sh
和script
选项,如下所示:2exbekwf2#
简单地说:
hs1rzwqc3#
我遇到了一个类似的问题,因为我希望一个特定的管道提供变量,而许多其他管道使用它来获得这些变量。
我创建了一个my-set-env-variables管道
我可以在另一个管道中重用这些变量my-set-env-variables-test
amrnrhlw4#
我已经通过纠正语法增强了现有的解决方案。还使用了隐藏参数插件,这样它就不会在Jenkins UI中显示为额外的参数。效果很好:)
1rhkuytd5#
不需要(隐藏的插件)参数定义或临时文件访问。通过在Jenkins文件中使用全局Groovy变量可以完成跨阶段共享变量,如下所示: