当前位置:  开发笔记 > 运维 > 正文

Hudson:在两个作业运行之间存储变量的好方法是什么?

如何解决《Hudson:在两个作业运行之间存储变量的好方法是什么?》经验,为你挑选了1个好方法。

我有一份工作,需要知道上一份工作计算的价值.

有没有办法将它存储在Hudson/Jenkins环境中?

例如,我可以在shell脚本操作中编写类似下一个内容:

XXX=`cat /hardcoded/path/xxx`
#job itself
echo NEW_XXX > /hardcoded/path/xxx

但是有更可靠的方法吗?



1> Eamon Nerbon..:

一些选择:

将数据存储在工作区中. 如果数据不是关键的(即,当工作空间被破坏时可以将其核对)应该没问题.我只使用它来缓存昂贵的计算数据,例如预构建的库依赖性.

将数据存储在文件系统中的某个固定位置. 你会让jenkins不那么独立,从而使迁移+备份变得更加复杂 - 但可能并不多; 特别是如果您将数据存储在jenkins的某个自定义用户子目录中.并行构建也很棘手,分布式构建可能是不可能的.Jenkins有一个userContent你可以使用的子目录 - 这样文件至少是jenkins安装的一部分,因此更容易迁移或备份.我为我的构建的(相当大的)代码覆盖趋势文件执行此操作.

将数据存储在不同的计算机(例如数据库)上. 设置起来比较复杂,但是你对本地机器的细节依赖程度较低,而且分布式和并行构建工作可能更容易.我这样做是为了维护一个实时更改日志.

将数据存储为构建工件. 这意味着查看以前构建的工件.它是安全且可重复的,并且因为Uri用于访问此类工件,所以也适用于分布式构建.但是,你需要处理失败的构建(你应该回顾几个版本吗?从头开始?)你将存储许多副本,如果它是1KB则很好但如果它是1GB则不太好.另一个缺点是,您可能需要打开jenkin的安全设置,以允许匿名访问工件(因为您只是从uri下载).

适当的解决方案取决于您的情况.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有