使用Jenkins(GitHub插件)接收提交ID

6
当我们将一些更改推送到Github时,可以使用Github服务触发构建。该服务是否提供提交ID?
你知道我如何获取该信息吗?
我需要提交ID以触发该特定ID的构建。(将提交ID传递到“分支规范(空白为“任何”)”字段中)。
git插件中所述,但似乎我没有从git接收到提交ID。
我在后期构建操作中看到我的提交ID,但在检出代码的那一刻没有看到它。
提前感谢您。
2个回答

6
如果您在Jenkins中使用Git插件(https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin)来检出代码,则应该能够在任何构建步骤中访问GIT_COMMIT环境变量。
还定义了其他有用的环境变量(如GIT_BRANCH、GIT_PREVIOUS_COMMIT等),您可能会发现它们很有帮助。

是的,我能看到环境变量,但我需要在代码检出之前获取那些信息。我已经编辑了问题。 - renanreismartins
所以你想让git提交触发构建,但是除非你知道提交ID,否则你不想进行构建?我对这里的用例还不太清楚,但如果你确实需要在检出代码之前知道提交ID,那么你可以在上游项目中获取提交ID,并使用构建参数将其传递给下游项目。 - topher
在链接中有一个使用案例的解释:“提交ID是可选的。如果设置了,它将立即触发构建,而不需要轮询更改。这样做的好处是,您可以让Jenkins测试所有推送,即使开发人员同时推送。”这就是为什么我需要提交ID……我的意思是没有也能工作,但我正在尝试使用它。 - renanreismartins

0

GitHub的Webhooks UI并不提供传递参数到/git/notifyCommit URL的可能性,例如提交SHA1。

然而,有一个名为“Jenkins (GitHub插件)”的GitHub服务会为每个提交向Jenkins传递一个JSON负载,其中包含一堆信息,包括提交SHA1。

如果您在构建触发器下启用“在更改被推送到GitHub时构建”的选项,您可能会得到您要查找的行为。


在构建会话中,我可以看到我的GIT_COMMIT环境变量,但是在源代码管理会话中也有这些信息会更好。 - renanreismartins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接