Nancy : Now with Mono builds on every commit
We?ve always tried to make sure that Nancy being able to run on Mono for every new release we put out. Since neither me or @Grumpydev use Mono or MonoDevelop as our primary development environment, nor does a lot of our contributors, we?ve always found ourselves having to play ?mono-catch-up? at the end of each milestone.
Having that extra step in the release process is a bit of an impediment when all we want to do is ship the new bits, as fast as possible, so we can put them in the hands of our community. Obviously we needed a change in our process and it was obvious that we needed to incorporate a Mono build into our CI process.
This is actually not a new idea we?ve had. For probably the better part of a year I have been trying to figure out how to make this happen. We are proud users of the CodeBetter TeamCity server and it?s always worked well for us, with great support. So my goal has always been to get a Mono build agents wired into that.
For one reason or another, it?s always fallen short, that is, until now. About a month ago I decided to take another swing at this so I contacted the people at CodeBetter to check on the likelihood of having a Mono agent added. I?d also talked to the awesome Dale Ragan (of Moncai, Monkey Square and Monospace) if he?d be willing to share a bit of his time and knowledge around the subject, which is was more than willing to.
A couple of e-mails later, the plans had been made and Dale also informed us that Monkey Square would like to sponsor the build agent and cover the cost of the EC2 instance that it would be running on. How cool isn?t that of them!?!
Today we ran the first successful, automated, Nancy Mono build using the new build agent! This is going to make it so easier for us to make sure that everything is strawberries when it comes to Mono at the time we are ready to push out a new official version. We?ll get near instant feedback on each of our commits and every time we accept a pull request. This means we can act immediately to sort it out instead of risking to put them all on a pile (usually a very small pile.. more like a bump really, but still a list of things that needs to be sorted).
(Yes, fewer tests on the Mono build because things like our WCF host is obviously not supported on Mono)
I would also like to make a shout-out to the awesome people at CodeBetter, especially
James Kovacs and Kyle Baley for their help in making this happen. A special thanks also goes out to Hadi Hariri, of JetBrains, for always helping out with my TeamCity questions and for encouraging me to push hard enough to make this a reality.