哪个持续集成服务器能够排队作业?

Gil*_*tes 5 teamcity continuous-integration buildbot jenkins travis-ci

使用案例:

CI服务器轮询一些VSC存储库并为每个修订运行测试套件.如果提交了两个或多个修订版,即使在相对较小的时间间隔内,我希望CI服务器将每个修订版放入队列中,为每个版本运行测试,存储结果,并且永远不再为这些提交运行测试.我不希望CI服务器并行启动作业,以避免在许多同时作业的情况下出现性能问题和崩溃.

哪个CI服务器能够处理这个?

我的另外一个不那么重要的要求是我使用Python并且希望使用用Python编写的软件,因此我查看了Buildbot项目,我特别想看看这个工具的评论是否可以在一般情况下使用它是否能够取代Travis或Jenkins等大多数流行解决方案.

gao*_*the 8

我用jenkins来做这件事.(主要是subversion,c/c ++ build以及bash/python脚本作业)

jenkins中VCS/SCM更改的最简单和默认处理方法是轮询设置时间内的更改.如果有任何更改,则会触发构建.在使用此方法时,可以在构建中包括多个提交(例如,如果两个提交一起完成).Jenkins显示链接回scm和scm更新以及显示构建日志,您可以轻松配置构建输出和测试结果表示.

https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-Buildsbysourcechanges

您使用的VCS/SCM是什么?Jenkins与很多VCS/SCM接口:https: //wiki.jenkins-ci.org/display/JENKINS/Plugins#Plugins-Sourcecodemanagement

这个问题回答了如何让Jenkins构建在每个subversion提交上: Jenkins CI:如何在SVN提交上触发构建


Dav*_*uth 6

TeamCity是免费的(最多可以构建和构建代理)并且功能丰富.安装和配置非常简单,但可能需要一些时间才能找到通过丰富选项的方式.它有很好的文档记录:http://www.jetbrains.com/teamcity/documentation/

它是用Java编写的,但通过命令行执行本机支持许多工具,因此您可以使用它构建任何您想要的任何工具.(我主要用于Ruby.)它理解许多测试工具的输出 ; 如果您没有使用其中一个,也许您可​​以模仿他们的输出.它非常具有可扩展性; 它有一个REST API和一个插件API.

它可以配置为在每次提交时构建,或构建在给定时间段内到达的所有提交,或以其他方式触发.文档:http://confluence.jetbrains.com/display/TCD8/Configuring+VCS+Triggers

默认情况下,它会启动单个构建代理,并在该构建代理上一次运行一个构建.您可以为速度运行更多构建代理.如果您不想在计算机上运行多个构建,则只在每台计算机上启动一个构建代理.


Yai*_*vet 2

对于BuildbotPython,您可以通过配置来协调并行构建,例如:

并行流程建模:步骤

svn up
configure
make
make test
make dist
Run Code Online (Sandbox Code Playgroud)

此外,您还可以尝试为您的构建器使用可触发调度程序,该调度程序执行步骤 U、V、W。

来自文档

可触发调度程序等待由另一个构建中的触发步骤触发(请参阅触发调度程序)。该步骤可以选择等待调度程序的构建完成。与依赖调度程序相比,这提供了两个优点。

参考: