我目前正在Jenkins中开发一个相当复杂的脚本管道,在构建工作中一直需要一些值。我试图将它们保存到环境变量中,例如session_start();
var_dump($_SESSION);
$_SESSION['val'] = isset($_SESSION['val']) ? ++$_SESSION['val'] : 0;
session_commit();
sleep(5);
exit;
。
但是,这仅限于标量值,我也需要存储一些结构化数据,主要是小列表和地图。我知道我可以根据需要对它们进行序列化/反序列化,但是我不想这样做。
除了使用全局变量之外,还有什么(更好)的方法可以做到这一点?詹金斯(Jenkins)对象是否提供任何手段来做类似env.MY_VAR = 'foo'
的事情?
答案 0 :(得分:0)
一种更好的方法可能是使用共享库来实现这一点(请参见"Extending with Shared Libraries"。例如,您可以将Map
中的MyMap
包装在共享库中,然后导入像这样将其发送到您的管道:
@Library('somelib')
import com.mycorp.pipeline.complextypes.MyMap
这有点复杂,我个人宁愿摆脱复杂的类型或使用全局变量,但如果您需要的不只是通用的Map
,那值得付出努力。