下游作业如何使用上游作业传递的git commit?

问题描述 投票:13回答:3

我有两个要完成的作业(A和B)是由A触发的,并且在A成功建立之后,A使用了git commit来触发它。

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

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

hudson jenkins hudson-plugins
3个回答
15
投票

Jenkins Git插件是一种智能工具。不需要特定的配置。在上游作业触发上游作业使用的Git提交的下游作业时,下游将自动检出上游传递的提交。


3
投票

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

这绝对是一个令人沮丧的问题,花了我很长时间才解决。


0
投票

我也遇到了同样的问题。您需要确保在下游项目的“作业通知”选项卡中,选中了“此项目已参数化”选项。如果未选择此选项,则下游作业似乎不希望来自上游作业的参数,因此它会忽略这些参数。

假设上游作业为A,下游作业为B

在上游作业A:] >>

Builds

-> 触发/调用其他项目的构建-> 要构建的项目-> 指定下游作业(即B)

然后添加参数

-> 预定义参数(选择适合您的选项)在“ parameters”中,具体指定要传递给“下游作业” B的参数。例如,

GIT_COMMIT = $ GIT_COMMIT

GERRIT_BRANCH = $ GERRIT_BRANCH

请注意,您必须放置一个每行的参数名称/值

下游项目B:

] >>

作业通知-> 此项目已参数化

-> 添加参数-> 字符串参数

插入参数的名称和默认值。例如,对于上述两个参数,您可以将名称和默认值对插入为

名称:GIT_COMMIT

默认值:$ GIT_COMMIT

名称:GERRIT_BRANCH

默认值:$ GERRIT_BRANCH

此配置对我来说非常理想。

© www.soinside.com 2019 - 2024. All rights reserved.