Python代码库的连续集成系统

Translate

我开始从事一项业余爱好项目,蟒蛇代码库,我想建立某种形式的持续集成(例如,每次签入时都要运行一堆测试用例,并在测试失败时向负责的人发送nag电子邮件),类似于巡航控制要么团队城市.

我意识到我可以在大多数情况下用钩子做到这一点VCS,但是这要求测试必须与版本控制服务器在同一台计算机上运行,这并不是我想要的那么优雅。有没有人对适合于小型,人性化,开源的持续集成系统提出任何建议?蟒蛇代码库?

This question and all comments follow the "Attribution Required."

所有的回答

Translate

我们跑Buildbot-Trac工作中。因为我的代码库还不是发布周期的一部分,所以我没有使用太多。但是我们在不同的环境(OSX / Linux / Win)上运行测试,并且它发送电子邮件-它是用Python编写的。

来源
Translate

哈德森就是一种可能性。它是用Java编写的,但是与Python项目集成在一起:

哈德森拥抱Python

但是,我从来没有尝试过。

(更新资料,2011年9月:在商标争议之后,Hudson已重命名为詹金斯.)

来源
Translate

其次是Buildbot-Trac集成。您可以在Buildbot网站。在上一份工作中,我们编写并使用了他们提到的插件(tracbb)。插件的作用是重写所有Buildbot网址,以便您可以在Trac中使用Buildbot。 (http://example.com/tracbb).

Buildbot的真正好处是配置是用Python编写的。您可以将自己的Python代码直接集成到配置中。编写自己的BuildSteps以执行特定任务也非常容易。

我们使用BuildSteps从SVN获取源代码,提取依赖项,将测试结果发布到WebDAV等。

我编写了一个X10接口,以便我们可以发送带有构建结果的信号。当构建失败时,我们打开了红色熔岩灯。构建成功后,绿色熔岩灯会亮起。美好时光 :-)

来源
Translate

我们将Buildbot和Hudson都用于Jython开发。两者都是有用的,但是有不同的优点和缺点。

Buildbot的配置是纯Python,一旦掌握了它,就非常简单(有关最新信息,请参阅epydoc生成的API文档)。 Buildbot使定义非测试任务和分发测试人员变得更加容易。但是,它实际上没有单个测试的概念,仅包含文本,HTML和摘要输出,因此,如果要具有多级可浏览的测试输出等,则必须自己构建或使用Hudson。

Hudson为从整体结果深入到测试套件和单个测试提供了出色的支持。这对于比较内部版本之间的测试输出也非常有用,但是分布式(主/从)内容相对较为复杂,因为您在从属服务器上也需要Java环境。同样,哈德森对主机和从机之间不稳定的网络链接的容忍度也较低。

因此,为了获得两种工具的优势,我们运行了一个Hudson实例,该实例捕获了常见的测试失败,然后使用Buildbot进行了多平台回归。

这是我们的实例:

来源
Translate

我们正在使用被咬与Trac集成在一起。它是基于python的。

来源
Betty Lee
Translate

TeamCity有一些Python积分.

但是TeamCity是:

  • 不是开源的
  • 不小,但功能丰富
  • 对中小型团队免费。
来源
Translate

我有很好的经验特拉维斯适用于较小的代码库。主要优点是:

  • 不到一半的配置文件即可完成设置
  • 您可以自己安装,也可以使用免费的托管版本
  • github仓库的半自动设置
  • 网站上不需要帐户;通过github登录

一些限制:

  • 不支持将Python作为一流语言使用(在撰写本文时;但是您可以使用pip和apt-get安装python依赖项;请参阅本教程)

  • 代码必须托管在github上(至少在使用正式版本时)

来源