重试由git push触发的Jenkins构建到任意分支

时间:2016-03-26 23:22:17

标签: jenkins jenkins-plugins

我正在尝试添加一些非常基本的功能,这些功能存在于所有其他现代ci产品中,但不幸的是,这似乎是Jenkins土地上一个完全陌生的概念。

我已经连接了github插件,并且git插件设置为构建“origin / master”的“反向”,因此推送除master之外的任何分支都会触发构建。

问题是,如果有一个片状测试并且构建失败,则无法在jenkins中重新启动它。我添加了Naginator插件,但它重建了最后运行的分支,而不是您单击“重试”的构建分支。使用Naginator插件,似乎我需要git branch或sha作为构建的真实参数。但是,当构建被触发时,我无法找到将git分支设置为构建参数的方法。

我唯一能想到的是将它拆分为两个构建链接到同一个git repo,并让第二个构建一个参数化构建,第一个构建以GIT_COMMIT值作为参数触发。然后,用Naginator重试第二个应该在相同的SHA上重试它。这不是一个好的解决方案,但是我必须为每个构建配置2个构建。

有谁知道实现这个目标的好方法?我希望我只是错过了一些简单的东西。

1 个答案:

答案 0 :(得分:0)

不幸的是,我不熟悉这个确切的设置,但Git plugin documentation推送来自存储库的通知,提到触发网址中的<commit ID 是可选的。如果设置,它将立即触发构建,而不轮询更改

如果某个插件中有内置的“按钮”从jenkins UI手动发出,我不知道,如果不是,这可能是一个不错的功能请求。

所以,如果确实没有简单易用的选项,作为一种解决方法,您可以自己编写一些脚本,该脚本构建并调用给定分支+提交ID的URL。

  

触发网址格式,如Git Plugin docs

中所示      

curl http://yourserver/git/notifyCommit?url=<URL of the Git repository>&branches=branch1[,branch2]*][&sha1=<commit ID>]