配置Github pull request插件以在多个构建上可靠地工作

时间:2013-09-03 09:19:52

标签: github build jenkins build-automation pull-request

我在两台不同的计算机上有2个Jenkins实例。

其中一个涉及Windows和Linux版本,另一个涉及OS X版本。

我们正在使用Github(更准确地说是Github拉取请求),因此我们设置Github Pull Request Plugin for Jenkins以在发出拉取请求时自动启动构建。

它工作得相当好(PR状态用构建状态更新,即“待定”,“成功”或“失败”)但遗憾的是,每个平台上的3个构建似乎都没有意识到彼此。结果,可能发生以下情况:

1: OS X build starts and sets the status to "pending"
2: Windows build starts and sets the status to "pending"
3: OS X build fails and sets the status to "failed"
4: Windows build succeeds and sets the status to "success"

显然,在这种情况下,PR将被错误地标记为有效,而构建失败。不太棒。完全没有。

你们中的任何一个人都会有类似的设置(或者足够接近的东西)以及使这项工作可靠的方法吗?任何工作解决方案都很好,包括使用(一个)其他插件,改变物理配置。无论什么能让事情变得更好,因为这对开发者来说是一场噩梦。

1 个答案:

答案 0 :(得分:3)

解决方法是将您的GitHub PR构建器构建为jenkins构建流程作业:

build("unit-tests");
parallel (
    // osx and windows will be scheduled in parallel.
    { build("osx-integration") },
    { build("windows-integration") },
)

https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin

这样,构建流作业将保持“运行”,直到所有构建完成,并且如果任何子构建失败,则整个构建失败。