Python代码库的持续集成系统

69 投票
7 回答
9653 浏览
提问于 2025-04-11 00:08

我正在开始一个爱好项目,使用的是Python代码。我想设置一种持续集成的方式,也就是每次代码提交时都能自动运行一系列测试,并在测试失败时给相关人员发送提醒邮件。这个过程类似于CruiseControlTeamCity

我知道大多数版本控制系统(VCS)可以通过钩子来实现这个功能,但这样的话测试必须在和版本控制服务器同一台机器上运行,这样就显得不够优雅。我想问问有没有适合Python代码的小型、用户友好、开源的持续集成系统推荐?

7 个回答

19

我也支持Buildbot和Trac的整合。你可以在Buildbot网站上找到更多关于这个整合的信息。在我之前的工作中,我们写了他们提到的那个插件(tracbb)。

这个插件的作用是重写所有Buildbot的链接,这样你就可以在Trac里面使用Buildbot了。比如说,你可以通过http://example.com/tracbb来访问。

Buildbot一个很棒的地方是它的配置是用Python写的。你可以直接把自己的Python代码整合到配置里面。而且,写自己的BuildSteps来执行特定任务也非常简单。

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

我还写了一个X10接口,这样我们就可以用构建结果发送信号。当构建失败时,我们会打开一个红色的熔岩灯;当构建成功时,绿色的熔岩灯会亮起。那段时间真不错 :-)

29

一种可能性是Hudson。它是用Java写的,但可以和Python项目结合使用:

Hudson支持Python

不过我自己从来没有试过。

(更新,2011年9月:因为商标纠纷,Hudson已经改名为Jenkins。)

33

我们在工作中使用 Buildbot - Trac。我用得不多,因为我的代码还没有进入发布阶段。不过,我们会在不同的环境下(比如OSX、Linux和Windows)运行测试,它还会发送邮件通知,而且它是用Python写的。

撰写回答