April 24, 2008
Currently, I’m helping a client get their Continuous Integration system in a little better shape. They have CruiseControl.NET installed and monitoring their VSS repository (I know, I know, don’t get me started – I’m working on getting Subversion adopted). When spinning up a project, I’m a big advocate of having EVERYTHING under source control and that includes the build system itself. This is a brief guide on how that works.
First you need to configure CC.NET for your environment so that it’s monitoring your SCM and ready to execute your build script. Here’s our ccnet.config that accomplishes this:
C:\Program Files\Microsoft Visual Studio\VSS\win32\SS.EXE
This file is then checked into a project called “BuildSystem”, to match the configuration file, along with a build script that will copy the edited files over top of the existing ones and a copy of NAnt to execute it.
< ?xml version="1.0" encoding="utf-8" ?>
<project name="AffiliateIntranet" default="deploy" xmlns="http://nant.sf.net/release/0.86-beta1/nant.xsd">
<copy file="ccnet.config" todir="D:\Program Files\CruiseControl.NET\server" overwrite="true" />
<copy file="dashboard.config" todir="D:\Program Files\CruiseControl.NET\webdashboard" overwrite="true" />
Now when changes are made to the files and checked in, the build system will see the changes and copy the new files over top of the old ones. CC.NET will see the new file and restart in order to pick up the changes. This is why we have to do it using NAnt rather than the built-in version.
Why, Why, Why
While a configuration like this may seem like overkill, it helps to cut down on the amount you need to remote to the build server as well as decreasing the amount of time to spin up a new build server should the current one decide to take a “dirt nap”.
David O’Hara is a Senior Consultant with Improving Enterprises in Dallas, Texas.
October 9, 2007
So I’m back from what was described by a fellow attendee as “programmer heaven” and I’ve have to say I’d agree with him. Given the hosts and the attendees, it represented a chance to hang out with a number of folks that I previously only knew thru their blogs, a chance to meet new people with similar ideas and values as well as a great reason to spend a weekend in Austin. Little did I realize it would be all those things and so much more. At times it was a bit surreal; talking Silverlight and the DLR with Scott Hanselman, Scrum and process in the enterprise with Raymond Lewallen, or continuous integration and “build systems” with Jay Flowers I can say I had no problem stepping into a conversation with any of the attendees and found everyone receptive to a conversation. It was a great pleasure meeting so many people and I hope that the friendships that were formed this weekend continue to grow with time.
There has been a lot talk about the nature of the Alt.Net movement and I feel the need to weigh in on my position here. The “alternative” part of the name, to me, represents the alternatives to the main stream options presented by the vendors, i.e. open source. But it goes beyond that. It really isn’t so much about the tools themselves as the ideas and concepts behind those tools. Dependency injection, inversion of control, object relational mapping and acceptance testing have all led to excellent open source tools. The awareness of these concepts, let alone the tools, is something that is truly lacking in the .Net community as a whole. This conference was an open call to knowledgeable parties asking how we get this message out in a way that is accessible and visible to those who can benefit most from it. Yeah, there was some echo chamber in the discussion but overall what came out of the talks was valuable ideas. Ideas that I hope we as a community embrace and make a reality. I for one will be re-focusing my presentation topics in a direction that I believe will help share these ideas and bring the awareness up as a whole.
P.S. Jaime – if you happen to read this and come back thru Dallas, I owe you a dinner so give me a ring.
May 15, 2007
I’ve moved my little project iTunesCommander to Google Code. CI isn’t set up yet but since it’s such a small project, I’m in no rush to get it done.
May 1, 2007
This past weekend CitCon North America, pronounced kit-kon NOT sit-kon for those, like myself, who were unaware, was held here in Dallas. It was a limited engagement but I was lucky enough to get a spot so I thought I’d give you my impressions of the event. Friday night was a the meet & greet and planning for the sessions. The conference adheres to the Open Spaces idea and I have to admit I was pretty skeptical. There are no formal speakers or talks but rather semi-organized discussions surrounding the ideas that the participants put forth. Sounded pretty touchy-feely and little too hippy for me (in spite of my environmental bent I don’t classify myself as “crunchy”) but I have to say that I found it to be significantly more informative. No one really wandered off, in spite of the rule allowing you to do so, because the discussions were free to meander to topics that were important to the group.
Not to be completely neglectful, there were several vendors there to show off their CI software or a new book but it was such a minute part of the experience. I look forward to hanging out with some of my new friends and hope to enjoy their company again soon.
Oh and I’d be remiss if I didn’t share a photo of the book autograph. That’s right boys & girls, I got Martin Fowler to sign my copy of “Refactoring“!!
April 18, 2007
I mentioned earlier that I’d be giving my new “Improving Developer Productivity” talk at Dallas Code Camp this Saturday. I’m even more excited because, thanks to Caleb’s assistance, I’ll be giving away 2 copies of CodeRush (including Refactor! Pro). These are donations from DevExpress (via Mark Miller) and, from what I understand, a hard to come by item. Thank you Caleb; thank you Mark. If you haven’t already, go sign up. The agenda is packed with great folks and I’m sure it’s going to be a good time.