我使用詹金斯测试/建造的目的,所以我创建了这个配置的多椎项目:詹金斯:在多椎
- 测试工作
- 构建工作
- 安装工作
MultiJob从Master Jenkins启动,但其他作业从其他节点启动。 构建作业执行一个创建BUILD_ID的shell脚本。 现在,我想将BUILD_ID作为参数传递给安装作业。 我该怎么做?我唯一的选择是使用属性文件?
非常感谢
我使用詹金斯测试/建造的目的,所以我创建了这个配置的多椎项目:詹金斯:在多椎
MultiJob从Master Jenkins启动,但其他作业从其他节点启动。 构建作业执行一个创建BUILD_ID的shell脚本。 现在,我想将BUILD_ID作为参数传递给安装作业。 我该怎么做?我唯一的选择是使用属性文件?
非常感谢
要使用我要描述的建议,您将需要Parameterized Trigger插件。将自定义参数传递到下游作业的一种方法是将密钥对(key=value
)存储在文件中,并在调用下游(本例中为作业B)作业时通过选择Parameters from properties file
选项指定相同的文件。请参阅下面的截图:
现在,您可以通过使用$BUILD_ID
访问下游的工作“B”的变量。您还想启用选项Don't trigger if any files are missing
。
首先,你需要添加到“安装工作”被称为“BUILD_ID”,然后一旦你的构建工作完成后,你可以在“触发参数化的基础上对其他项目”,并添加一个字符串参数未来建设作为BUILDID =%BuildID%
有关在詹金斯paramterized工作的详细信息请阅读以下链接的参数: https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build
,你可能需要安装一个插件为。上面的链接。
您可以在多作业阶段通过使用预定义参数选项来传递参数BUILD_ID
。
步骤如下:
BUILD_ID
;问题问如何在作业之间为MultiJob项目传递值,而不是参数化触发器。参数化触发器可能不是一个好的解决方案,因为下游作业将在MultiJob父级范围之外执行。传递变量多椎子作业之间,
我看到这是被接受的答案,它真的回答了这个问题吗?我和@Ligio具有完全相同的情况,它是一个** MultiJob **,需要将参数从_build_传递到_deploy_作业。值来自_build_作业,但_deploy_作业**不是_build_作业的下游**作业。它们按顺序运行,但是作为父代** MultiJob **的阶段。而且,它们运行在不同的奴隶机器上。我看不出这个解决方案如何工作。任何提示将不胜感激。 [看起来像。](https://s21.postimg.org/x82wux0qv/multijob.png) – topr 2016-08-26 10:42:39
@topr我也有同样的问题。任何进展或解决方法? – polavishnu 2016-11-25 08:03:33
@polavishnu是的,每个阶段的作业都有多个作业级别添加的env变量。对于问题中的情况,只需将BUILD_JOB_BUILD_ID(或BUILD_JOB_BUILD_NUMBER,不记得确切)环境变量的值传递给安装作业就足够了。 – topr 2016-12-06 18:36:35