[Mono-dev] Continuous Integration for Mono

David Schmitt david at dasz.at
Fri Jun 24 18:02:46 EDT 2011

On 24/06/11 23:37, Jonathan Chambers wrote:
> All,
> I'm composing this after a few discussions in the #monodev irc channel
> and this recent thread: http://go-mono.com/forums/#nabble-f1517221
> A continuous integration server for mono is required IMO, so I'm going
> to put out a few options and see what the community thinks.
> 1. Hosting everything - If the community is most willing to support
> monetarily, the entire build farm can be hosted at any number of
> providers. Someone of course still needs to maintain the CI system, but
> there would be no direct cost for hardware or a physical location for
> the machines (up front or long term). Also, there is the question of
> platforms for which hosting is not readily available.
> 2. Hosting the CI server - In this case, I envision a hosted CI
> coordinator machine that can manage and collate build/test results. The
> actual build machines could be hosted, or they could be provided by
> community at large and just directed by the coordinator. There's some
> hand waving here, but I think we could remotely execute the builds and
> make the results publicly available on the CI coordinator.
> 3. No hosting - Potentially, the CI system and the build machines could
> be located at some mono friendly organization or company. This obviously
> requires machines and a physical location to house them. Obviously,
> someone needs to maintain the hardware in addition to the CI system itself.
> My suggestion is to host at least the CI server at some provider, and
> potentially host the platforms for which hosting is readily available
> (Windows/Linux x86/amd64). Some platforms/OSs such as ARM, PowerPC,
> XBOX, PS3, etc. may not be possible to host. I'm guessing orgs with the
> most interest in those platforms will help in maintaining those
> platforms, or help in providing machines that can be used.

Option #2 seems sensible to me. The committers need control over the 
infrastructure, but the do not need to take care for each and every system.

> Further, I'd suggest using as much 'off the shelf' software as possible
> to allow mono community to focus more on mono and less on build
> infrastructure. Unless we need a custom CI system, I propose we at least
> consider TeamCity. A number of contributors to mono use it internally
> with success.

Is there a reason not to continue using monkeywrench? Perhaps enhanced 
with a little bit of gerrit?

> 1. Any estimates on how much money mono community could collect yearly
> for hosting costs/etc?

Potent build-hosts in "the cloud" can be had for 50€/month. I cannot 
imagine that money will be a problem.

> 2. What platforms *require* CI support? Is there an order of importance
> for platform to integrate into CI system?

I guess platforms should be integrated as they become available. The 
more interesting question is which failures are deemed critical by the 
committers ;-)

> 3. How/Where will *official* releases be built? How/where do we expect
> those binaries to be hosted?

I'm particularly partial to "native" repositories. yum/apt/ppa repos 
really reduce the friction to get code out to people to test stuff. Of 
course my opinion is heavily biased towards server usage.

Best Regards, David

More information about the Mono-devel-list mailing list