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

时间:2011-11-14 02:36:54

标签: hudson jenkins hudson-plugins

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

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

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

4 个答案:

答案 0 :(得分:14)

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:0)

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

让我们假设上游作业是A,下游作业是B

上游作业A:

构建-> 触发/调用其他项目的构建-> 要构建的项目-> 指定下游职位(ieB)

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

GIT_COMMIT = $ GIT_COMMIT

GERRIT_BRANCH = $ GERRIT_BRANCH

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

下游项目B:

工作通知-> 该项目已参数化-> 添加参数-> 字符串参数

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

名称:GIT_COMMIT

默认值:$ GIT_COMMIT

名称:GERRIT_BRANCH

默认值:$ GERRIT_BRANCH

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

答案 3 :(得分:0)

现在看来(参数化触发器2.37,Jenkins 2.204)“触发参数化构建”具有“构建的传递式Git提交”选项。即使在下游作业中没有任何特殊配置也可以工作。 Similar question

相关问题