RE: [dotnet-120] CruiseControl.NET - Easy open-source auto-build tool for .NET apps!

From: Daniel C.
Sent on: Monday, July 16, 2007 9:45 AM

Good question.  Also reminds me, has anyone used Microsoft Team Foundation Server for real?  I’ve never heard of anyone in Financial Services using it.

 

From: [address removed] [mailto:[address removed]] On Behalf Of Mark Pollack
Sent: Monday, July 16,[masked]:40 AM
To: [address removed]
Subject: RE: [dotnet-120] CruiseControl.NET - Easy open-source auto-build tool for .NET apps!

 

Hi,

 

Nice.  In this vein I’d be interested to know if anyone has experience with TeamCity, a cc.net competitor from JetBrains who made Resharper/IntelliJ.

 

http://www.jetbrains.com/teamcity/

 

Also, I’ve heard of some people using ivy (package dependency tool) for large .NET projects.  http://incubator.apache.org/ivy/  but  also haven’t looked into it too much.

 

Mark

 

 

 

From: [address removed] [mailto:[address removed]] On Behalf Of Daniel Chait
Sent: Sunday, July 15,[masked]:34 PM
To: [address removed]
Subject: RE: [dotnet-120] CruiseControl.NET - Easy open-source auto-build tool for .NET apps!

 

Great idea; let’s keep that in mind.

 

From: [address removed] [mailto:[address removed]] On Behalf Of Barry May
Sent: Sunday, July 15,[masked]:30 PM
To: [address removed]
Subject: Re: [dotnet-120] CruiseControl.NET - Easy open-source auto-build tool for .NET apps!

 

Daniel,

 

It might be worthwhile that one of the future Meetup meetings be source control/deployment/process-automation focused.   I'm not extremely familiar with SVN, but we're doing some customized processing on top of MKS Source Integrity and our VS project including changing the vdproj's msi version and AssemblyInfo on the fly.

 

With all the new technology constantly changing, it always helps to keep the process of getting your builds out in mind, and keeping the versions in check...
 

Barry
 

On 7/15/07, Daniel Chait <[address removed]> wrote:

Dan,

 

I usually recommend a system much like you mention, though I wouldn't typically include the month/day of the build in the revision number, and would rather include the branch in there.

 

When it comes time to release, we branch in SVN, which CruiseControl notices and begins building.  That branch might be named, say, RC1 ("Release Candidate 1").  We have scripts that check out the code, replace the version number in AssemblyInfo.cs (including the Svn revision number), then builds the code, then assuming the build works run the unit tests, then assuming the unit tests work build a deployment package (involves creating some xml descriptors and zipping up the outputs), then drops the deployment package to an (effectively write-once) deployment directory.  You can always get builds from there.  We keep any specially tagged "release builds" as well as the latest 5 days or so of continuous builds.  Of course you can always go back in time and build an older version to get those binaries back – keeping a few days' worth is just a convenience.

 

However, why are you debugging from binaries rather than from source?  Then you wouldn't need source server.  I suppose if you have a huge amount of projects, perhaps some controlled by other teams?

 

Interesting. Thanks for the input.

 

Regards,

Daniel

 

 

From: [address removed] [mailto: [address removed]] On Behalf Of Dan McKinley
Sent: Sunday, July 15,[masked]:41 PM
To: [address removed]
Subject: Re: [dotnet-120] CruiseControl.NET - Easy open-source auto-build tool for .NET apps!

 

(Copying the group ... trying to help out with the "community" thing.)

Yes, I've fought through a bunch of versioning issues. Here's the system that we've ended up with:

  • CCNET updates the build and revision numbers. We change the major and minor numbers per release.
  • Every project has the same version file linked into it. ("Add as link" in Visual Studio, in other words.)
  • The tool that grabs binaries from cruisecontrol updates that file with the version being retrieved.

The build numbers and revision numbers are significant. They are set up like this:
[major].[minor].[month and day of build].[svn revision number of build].

So you can tell at a glance when your binaries were built, and it's easy to sync your local source with a build if you want to debug something.

The end result of all of this is that you can grab the latest binaries and rebuild what you were working on, and everything should work. And it does, most of the time. Snags are introduced when Visual Studio is over-aggressive about locking files to make its intellisense work.

The next logical step would be to get Microsoft's source server up and running, so that manually synchronizing source as you're debugging wouldn't be necessary. I can't find the docs online anywhere, but it comes with the windows debuggers: http://www.microsoft.com/whdc/devtools/debugging/default.mspx

I'd be interested in hearing if anybody has done anything with that.

-DM



On 7/15/07, Barry May <[address removed]> wrote:

Dan - thanks for sharing the experience..

 

Two questions:

- Have you ever run into versioning problems/conflicts with the copied compiled assemblies from the tool?

- With an hourly deployment like that do you utilize the versioning done by ccnet?  If so, how?

 

All of my versioning is done manually when major changes are coming, although my final builds (of my smart client) that I send for QA testing are all done by ccnet, so I at least am assured that my builds are safely done from source control.

 

Thanks,

Barry


 

On 7/14/07, Dan McKinley <[address removed] > wrote:

We've been using ccnet for about two and a half years now. The system I built works like this:

  • ~35 developers work on one or two smallish projects that are referenced by a big website.
  • Cruisecontrol continuously builds the whole shebang and makes it available.
  • When a developer wants to update his development site, he uses a tool to copy down the compiled assemblies for everything he isn't directly working on.

So the end result is that everyone stays up to date, but compile times stay reasonably low, and nobody ever needs to run a full subversion update and full build.

We've also got ccnet pushing development builds to a webserver once an hour, to help QA validate fixes and to make life easier for developers on projects that only consume web services from the main web application.

And, we use it to run unit tests nightly. So in other words, yeah, this is a very useful tool and I recommend it.



On 7/13/07, Barry May <[address removed]> wrote:

Hi all,

 

Daniel, the Acropolis video was very cool - Seems like an extreme expansion on the CAB concept... could really help WPF apps catch on.

 

This is more of a process thing, but for the past several months, I've been using with great results an open-source tool called CruiseControl.NET with my team's development to perform easily configured/customized nightly builds.   

 

 

About three years in releases at this point, this is based on (as most open-source bits are) a Java system called Cruise Control and the Continuous Integration concept.  This runs as a web site/service on your spare desktop or server, and via a fairly simple XML config file, you can have it (along with multiple other projects) configured to:

  • Check for modifications and pull the code from your source control (using a myriad of Source Control tools, just about every one I've ever heard of)
  • Build the code (using MSBuild, NAnt, Visual Studio 03/05 (if you want setup projects built, since MSBuild can't), etc.) from the source control system
  • Deploy the build anywhere/however you want (via your own batch file)

You can configure it hourly, nightly, weekly, based on another project...

 

There's a monitoring tool (by default using Remoting) that can be used to monitor your server or server farm from a remote laptop or workstation.

 

And best of all, it's free, comes with all source code, and can get up and running in mere minutes.

 

As you can tell, I highly recommend it if you don't have a purchased tool like FinalBuilder... If you want more info or samples on usage, let me know... but if you work on a team and want an easy nightly-build process for all of your apps, this is a great way to go.

 

If you're going to try it out, one installation tip: if you install v1.3 be sure to set your ASP.NET settings on your server to 2.0, since IIS wants to (by default) run it as 1.1;  v1.3 's the first one built on .NET 2.0.

 

Good luck!

Barry

[address removed] 





--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ( [address removed])
This message was sent by Barry May ( [address removed]) from New York .NET Meetup Group.
To learn more about Barry May, visit his/her member profile
To unsubscribe or to update your mailing list settings, click here

Meetup.com Customer Service: [address removed]
632 Broadway New York NY 10012 USA






--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ( [address removed])
This message was sent by Dan McKinley ( [address removed]) from New York .NET Meetup Group.
To learn more about Dan McKinley, visit his/her member profile
To unsubscribe or to update your mailing list settings, click here

Meetup.com Customer Service: [address removed]
632 Broadway New York NY 10012 USA

 






--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ( [address removed])
This message was sent by Dan McKinley ([address removed]) from New York .NET Meetup Group.
To learn more about Dan McKinley, visit his/her member profile
To unsubscribe or to update your mailing list settings, click here

Meetup.com Customer Service: [address removed]
632 Broadway New York NY 10012 USA





--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ( [address removed])



This message was sent by Daniel Chait ([address removed]) from New York .NET Meetup Group.
To learn more about Daniel Chait, visit his/her member profile
To unsubscribe or to update your mailing list settings, click here

Meetup.com Customer Service: [address removed]
632 Broadway New York NY 10012 USA






--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ([address removed])
This message was sent by Barry May ([address removed]) from New York .NET Meetup Group.
To learn more about Barry May, visit his/her member profile
To unsubscribe or to update your mailing list settings, click here

Meetup.com Customer Service: [address removed]
632 Broadway New York NY 10012 USA





--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ([address removed])
This message was sent by Daniel Chait ([address removed]) from New York .NET Meetup Group.
To learn more about Daniel Chait, visit his/her member profile
To unsubscribe or to update your mailing list settings, click here

Meetup.com Customer Service: [address removed]
632 Broadway New York NY 10012 USA





--
Please Note: If you hit "REPLY", your message will be sent to everyone on this mailing list ([address removed])
This message was sent by Mark Pollack ([address removed]) from New York .NET Meetup Group.
To learn more about Mark Pollack, visit his/her member profile
To unsubscribe or to update your mailing list settings, click here

Meetup.com Customer Service: [address removed]
632 Broadway New York NY 10012 USA

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy