[Mono-dev] cruisecontrol.net on mono.

Lucas Meijer lucas at lucasmeijer.com
Thu Feb 12 17:17:47 EST 2009


I mentioned to Miguel that we're running cruisecontrol.net on mono on 
osx, to produce Unity3D generated builds
of our game. Miguel insisted I write to mono-devel and tell a bit more 
about it. Unsure why, as I'd rather talk about how nice it is that
I can run mono in Unity3D in a browser, and have it communicate with a 
server built on mono on the backend,
how we can use visualstudio to write & debug c#, how we get to use 
continuations, and how the switch to mono
has been such a breath of fresh air for us.

But none of that :-), Cruisecontrol.net.   This what often gets referred 
to as a Continous Integration server. Which is
fancy talk for something that builds your project on every commit, and 
maybe or maybe not does something with the results.
Usually people use it to check up on themselves and teammembers to make 
sure nobody broke any unit tests, makes
sure the project still builds on all the platforms it is supposed to 
build on, etc. (you'd have a seperate CI server per platform
for that scenario in most cases).

Anyway, CruiseControl.net is written in c#. I just tried to run it on 
mono, and it ran out of the box. The parts we've tried
work as advertised. I haven't used the webinterface part of the tool. We 
use CCNet.Tray to control it. It's a windows only
system tray application that you can use to make it start a build, and 
that turns red if something is wrong with a build.

We're happy with how it works. It's mono running cruisecontrol.net, 
which is running mono to run gmcs, which is compiling
our c# code to CIL. then it runs mono to run nunit on our unit tests. it 
tells unity3d to make a build, and uses a custom rsync
setup to distribute the results in an easy way for our teammembers to 
quickly get the results of the build.

Ironically enough, if you google for stackTraceString, the #3 thing you 
find is somebody who was unable to run cc.net on mono because
of the stackTraceString thing. <ducking>. It got properly fixed 
upstream. :-)

Bye, Lucas

-- Lucas Meijer | GameDev & Unity3D Consulting 
-- Blog: http://lucasmeijer.com/blog
-- twitter: lucasmeijer

More information about the Mono-devel-list mailing list