我使用 Jenkins 进行测试/构建,因此我使用以下配置创建了一个 MultiJob 项目:
- 测试作业
- 建立工作
- 安装作业
MultiJob是从Master Jenkins启动的,但其他作业是从其他节点启动的。 构建作业执行创建 BUILD_ID 的 shell 脚本。 现在,我希望将 BUILD_ID 作为参数传递给安装作业。 我怎样才能做到这一点?我唯一的选择是使用属性文件?
非常感谢
最佳答案
问题询问如何在 MultiJob 项目的作业之间传递值,而不是参数化触发器。参数化触发器可能不是一个好的解决方案,因为下游作业将在 MultiJob 父级的范围之外执行。要在 MultiJob 子作业之间传递变量,
- 将变量写入第一个子作业中的属性文件
- “归档工件”作为第一个子作业中的构建后操作
- 在第一个和第二个子作业之间,插入“从另一个项目复制工件”构建。将“项目名称”设置为第一个子作业的名称,将“哪个构建”设置为“由当前多作业构建触发的构建”。在“要复制的工件”中添加您的属性文件。
- 在第二个子作业中的“高级...”下,添加参数 -> 来自属性文件的参数,然后在其中输入属性文件名。您的第二阶段现在将具有从第一阶段传递的变量。
关于Jenkins:在 MultiJob 中共享变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25929774/