问题 下游作业如何使用上游作业传递的git提交?


我有两个工作(A和B)我想要B由A触发,A成功构建A后使用的Git提交。

构建触发器插件支持使用上游作业中使用的git commit触发下游作业。

我的问题是下游作业如何使用传入的提交签出。我没有找到作业A传递的变量,以及如何使用传入提交值通过Jenkins的Git插件检出B中的代码?


12843
2017-11-14 02:36


起源



答案:


Jenkins Git插件是一款智能工具。无需特定配置。在上游作业中,下游作业使用上游作业使用的Git提交,下游将自动检出上游传入的提交。


12
2017-11-17 07:11



你能解释一下它如何与Build管道一起工作。我希望下游构建使用上游构建的GIT_COMMIT变量。你能告诉我如何配置吗? - leenasn
@leenasn我正在使用参数构建触发器。上游作业将在下游稳定时触发下游 构建的传递Git Commit。下游不需要特定配置,您只需要为它指定相同的git存储库。 Jenkins核心将负责检查上游传递的提交。 - Kane
@Kane你有任何文件或证据表明这是真的吗? - Blowsie
@Blowsie您可以检查下游作业的构建信息。你可以发现git commit与上游相同。 - Kane
凯恩说的是真的,但没有任何意义。为什么插件选择这样一种不透明的方法来做到这一点超出了我的想法。 - cgf


答案:


Jenkins Git插件是一款智能工具。无需特定配置。在上游作业中,下游作业使用上游作业使用的Git提交,下游将自动检出上游传入的提交。


12
2017-11-17 07:11



你能解释一下它如何与Build管道一起工作。我希望下游构建使用上游构建的GIT_COMMIT变量。你能告诉我如何配置吗? - leenasn
@leenasn我正在使用参数构建触发器。上游作业将在下游稳定时触发下游 构建的传递Git Commit。下游不需要特定配置,您只需要为它指定相同的git存储库。 Jenkins核心将负责检查上游传递的提交。 - Kane
@Kane你有任何文件或证据表明这是真的吗? - Blowsie
@Blowsie您可以检查下游作业的构建信息。你可以发现git commit与上游相同。 - Kane
凯恩说的是真的,但没有任何意义。为什么插件选择这样一种不透明的方法来做到这一点超出了我的想法。 - cgf


我有同样的问题。核心问题似乎是Jenkins默认情况下不会将构建时变量从上游作业转移到下游作业。因此,除非您在源代码管理部分的下游作业中实际添加了存储库定义,否则GIT_COMMIT变量将为空。从我所知道的,它确实从repo获取上游git哈希,所以它不仅仅是最新的。

这绝对是令人沮丧的一点,让我花了太长时间才解决。


3
2017-08-20 22:34



此外,似乎(现在)被调用的作业需要声明它接收GIT_COMMIT,但实际上在GIT_PREVIOUS_COMMIT中找到了提交哈希值。 - Dave