Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
开发者_运维技巧Improve this questionGoogle says there are:
- Jenkins ( first impression: not lightweight )
- Cruise control ( first impression: not lightweight )
- Bitten ( seems to be dead, last ticket >8 months old)
- BuildBot
But BuildBot seems a bit outdated, offering no statistics, not very intuitive to configure... Features we are interested in are:
- Multi platform support for build slaves: Linux, Mac OS X, Windows
- Easy build slave setup
- Mercurial support with branch sensitivity
- Scheduled builds
- Commit-hook builds
- Email notification with full debug output
- Trac integration would be nice but is not a must-have feature
Edit: I favour Jenkins over Hudson by now, since its the real open source fork of Hudson. Oracle just failed.
Hudson is my recommendation. It's easy to setup and use, it's free, there are a large amount of third-party plugins and good community support.
TeamCity by JetBrains.
Google says there are: [...]
There is a huge wikipedia page on CI software comparison:
http://en.wikipedia.org/wiki/Comparison_of_Continuous_Integration_Software
Personally I am also using buildbot and I think it could fulfill all of your requirements. It's a bit of work to setup because it is a distributed application but frankly as pyfunc said it's a breeze to setup a new slave once you know what two commands to type (one is an "easy_install", the other one a "buildbot create-slave" with the right options).
Also it is still under heavy development and I chose it because it is easily extensible, whereas XML-based tools are confined to the types of build specs which were coded in the tool: perfect for Java/Ant/Maven projects but it can be limited for slightly more complex ones (e.g., involving DB, or embedded software, etc.).
Hope it'll help.
Cheers,
Christophe.
= The act of automating doesn't solve problems, it just automates them --Joseph Weizenbaum =
I have used Hudson with Mercurial and found it to be excellent. The Feeds, web site, status reports, etc. were all "just the right size" for us in a 20 person shop. Just run it in a VM and forget about it; we did.
I have used BuildBot. My experience has been good with it. Installation is a breeze. It uses configuration to setup the master, slave and has various means for communicating result from publishing on web to mail integration.
- http://buildbot.net/trac
I have blogged about the buildbot setup. I find it easy. There are few dependencies like twisted that needs to be taken care of.
- http://pyfunc.blogspot.com/2010/09/using-buildbot-for-continuos.html
[Edit: I tried to put together a post on how to configure BuildBot - master.cfg]
- http://pyfunc.blogspot.com/2010/10/setting-up-buildbot-customizing.html
As others have recommended, Hudson satisfies your list of requirements. There's also a plugin for Trac integration.
Regarding "lightweight", Hudson configuration is not XML hell. You can do everything via the Web interface. So it's very easy to get up and running.
Hudson's plugin architecture provides a lot of extension points and integration with other tools. (Although it can be a pain to sort through all the possibilities for the plugin that has the behavior you need.)
You can also script it through the remote access API. This is a powerful way to introduce new behavior for your environment without needing to dive into writing a plugin.
Our free hosted CI environment (fazend.com) is powered by CruiseControl 2.8.3, which is a free open-source product, written in Java. One of its benefits (for us) is that it doesn't need any database, everything is in files.
精彩评论