Jenkins MultiJob阶段分享$ {BUILD_TIMESTAMP}

时间:2017-02-20 16:10:28

标签: jenkins

我有一个父母jenkins multijob,它调用3个子作业,向子项传递父项构建的相同参数。 每个孩子都需要使用相同的时间戳,因为它是每个孩子在网页上需要搜索的唯一标识符。

我的问题是: 构建父级时,“name”参数设置为$ {BUILD_TIMESTAMP},让我们在2月20日12:00调用此“02201200”短。使用“传递当前作业参数”调用每个子项。但是,不是每个孩子都接收02201200,而是每个孩子都会收到$ {BUILD_TIMESTAMP}并再次获取此值(例如02201204)。

如何强制父级评估$ {BUILD_TIMESTAMP}并将其评估传递给子级而不是变量本身?

1 个答案:

答案 0 :(得分:0)

一种可能的解决方案是将此时间戳的值写入文件。然后,您可以通过"属性文件中的参数"在后续作业中引用该值。选项。显然,每次你的作业序列运行时你都会覆盖这个文件。

我使用了这种方法,最终通常将所有元数据(系统/环境变量,jenkins参数和构建属性等)保存到属性文件中,甚至存档它们。这种方法简化/解决了我遇到的许多问题。现在,每个构建都将其元数据存档,对于下游作业或以后的引用,我可以从这个文件中获取所有必要的信息;不需要传递额外的参数。

此外,如果出现任何问题,元数据对调查非常有帮助。我会推荐这个简单的策略,因为它对我和我的团队非常有用。