Jenkins管道-全局(非环境)属性

时间:2018-07-06 09:12:47

标签: jenkins jenkins-pipeline

我目前正在Jenkins中开发一个相当复杂的脚本管道,在构建工作中一直需要一些值。我试图将它们保存到环境变量中,例如session_start(); var_dump($_SESSION); $_SESSION['val'] = isset($_SESSION['val']) ? ++$_SESSION['val'] : 0; session_commit(); sleep(5); exit;

但是,这仅限于标量值,我也需要存储一些结构化数据,主要是小列表和地图。我知道我可以根据需要对它们进行序列化/反序列化,但是我不想这样做。

除了使用全局变量之外,还有什么(更好)的方法可以做到这一点?詹金斯(Jenkins)对象是否提供任何手段来做类似env.MY_VAR = 'foo'的事情?

1 个答案:

答案 0 :(得分:0)

一种更好的方法可能是使用共享库来实现这一点(请参见"Extending with Shared Libraries"。例如,您可以将Map中的MyMap包装在共享库中,然后导入像这样将其发送到您的管道:

@Library('somelib')
import com.mycorp.pipeline.complextypes.MyMap

这有点复杂,我个人宁愿摆脱复杂的类型或使用全局变量,但如果您需要的不只是通用的Map,那值得付出努力。