我在Jenkins上有一个触发shell脚本的工作,它会生成一个工件并上传到NFS。我想为QA添加一个流程来访问Jenkins,以便在构建验证后将构建作为发布版本进行推广。目前,测试不是自动化的,因此促销的触发器是手动的。促销的作用是将NFS上的工件移动到其他位置。我想要使用Ansible或shell脚本来存档它。
问题在于,当触发促销时,我需要知道此Jenkins作业中每个特定构建#的NFS,SVN#等构建的位置。我想知道是否有现有的插件或解决方案。
我认为读取和写入数据库是可行的,但对我来说似乎有点矫枉过正。我只是想知道我是否在这里遗漏了一些东西。如果Jenkins有类似用例的内置插件,我很好奇。
谢谢!
答案 0 :(得分:1)
你正走在正确的道路上。阅读这个答案: 的 How to promote a specific build number from another job in Jenkins? 强>
在构建作业中,将所需的所有信息保存到属性文件中:
var1=blah
var2=lalala
在构建过程结束时归档此文件(归档是标准的构建后步骤)
当您的促销活动开始时,您需要使用PROMOTED_NUMBER
参数来指定要执行的 构建。然后使用Copy Artifacts插件将以前保存的属性文件提取到促销的工作区(阅读链接的答案)。复制后,您可以使用EnvInject插件将属性文件作为环境变量加载,或者按原样在shell / ansible中使用它。
编辑:
您不需要2个作业,如链接答案中所述。但请记住,促销流程作为单独的流程运行,但使用与主要工作相同的工作空间,因此为避免工作区内的冲突,请为促销流程创建一个单独的文件夹,并在那里进行所有促销工作。