Fervent Coder

Coding Towards Utopia...by Rob Reynolds
posts - 278 , comments - 431 , trackbacks - 0

My Links


Rob Reynolds

Subscribe to Fervent Coder RSS
Subscribe to Fervent Coder by Email

About Me

I manage several open source projects. Need...
   ...package management for Windows?
   ...automated builds?
   ...database change management (migrations)?
   ...your application to check email?
   ...a monitoring utility?

I also write for

Like what you are reading? Want to buy me a cup of coffee?
PayPal - The safer, easier way to pay online!


Post Categories


UppercuT - Automated Builds - Getting Started Part 8 (Next Steps)

In Part 1 we downloaded or built from source control. In Part 2 we added UppercuT to our project. In Part 3 we set up the UppercuT configuration. In Part 4 we updated our reference folders if we needed to. In Part 5 we built our code successfully. In Part 6, we checked into source control. In Part 7, we  automatically ignored folders for SVN. What are the next steps to take advantage of the power of UppercuT?

The Power of UppercuT

UppercuT comes with many great features! You now have automated build goodness; why not take a look at what else you can do? Some of these features will help you better maintain your code or even do less work to get the same results.


VersionBuilder allows you to tie your DLLs back to both a build and a revision number in source control. A common problem many of us have is versioning our DLL assemblies and keeping track of what’s in production versus what’s in source control. If you rock with Subversion, UppercuT has this problem solved UppercuT automatically generates an assembly version file for you during build. All you need to do is hook every project up to it.

See more in the VersionBuilder document [http://uppercut.googlecode.com/svn/trunk/docs/VersionBuilder.doc] or at http://ferventcoder.com/archive/2009/05/21/uppercut---automated-builds---versionbuilder.aspx

Integration with Continuous Integration Server (like Team City or CruiseControl.NET)

Having automated builds with UppercuT is good, but it’s even better once you get a continuous integration server to automatically check your code out on changes and run UppercuT for you!

See more in the CruiseControl.NET Integration Document [http://uppercut.googlecode.com/svn/trunk/docs/IntegrateUppercuTWithCruiseControl.NET.doc] or at http://ferventcoder.com/archive/2009/05/21/uppercut---automated-builds---cruisecontrol.net-integration.aspx

Get samples here: http://uppercut.googlecode.com/svn/trunk/docs/Samples/CC.NET/

Implement Custom Tasks if necessary

What good is a build framework if you can’t extend it? That is why we planned a way to allow you to hook right into UppercuT at certain points with Custom Tasks.

See more in the Custom Tasks Document [http://uppercut.googlecode.com/svn/trunk/docs/CustomTasks.doc] or at http://ferventcoder.com/archive/2009/05/21/uppercut---automated-builds---custom-tasks.aspx.


How much maintenance are you doing on configuration files? What happens when you have to update a configuration? You usually have to update it in multiple places. ConfigBuilder allows you to get away from that and only maintain a template file that looks just like the configuration file, but with pointers to environment variables.

See more in the ConfigBuilder Document [http://uppercut.googlecode.com/svn/trunk/docs/ConfigBuilder.doc] or at http://ferventcoder.com/archive/2009/05/17/uppercut---automated-builds---the-configbuilder.aspx.


How much maintenance are you doing on deployment batch files (if you use scripted deployments)? Would you rather maintain just one file? That is where DeploymentBuilder comes in. It allows you to maintain a template file in much the same way as ConfigBuilder.

See more in the DeploymentBuilder Document [http://uppercut.googlecode.com/svn/trunk/docs/DeploymentBuilder.doc] or at http://ferventcoder.com/archive/2009/05/19/uppercut---automated-builds---deploymentbuilder.aspx.

Other Features

More features are being added to UppercuT. Stay tuned for a roadmap of what features are expected to be in 1.0.



Ask Questions / Learn About Changes & New Versions

If you have questions, you want to know about new features, or you want to get more involved, feel free to join the group. http://groups.google.com/group/chucknorrisframework


UppercuT - Getting Started Series

Part 0 - Prerequisites
Part 1 - Get UppercuT
Part 2 - Add UppercuT to your project
Part 3 - Configure UppercuT.config
Part 4 - A note about the external tools / libraries
Part 5 - Build It!
Part 6 - Source Control / What NOT to check in
Part 7 - Setting up TortoiseSVN to Globally ignore UppercuT output folders and files
Part 8 - Next Steps

With this knowledge you shall build.

kick it on DotNetKicks.com

Print | posted on Saturday, May 30, 2009 12:52 PM | Filed Under [ Code UppercuT ]



# re: UppercuT - Automated Builds - Getting Started Part 8 (Next Steps)

Thank you for this awsome build process. I have been delaying setting this up for a while now and you really made things easy. One issue I am having though. I followed all of your steps and everything builds fine, but I can't seem to get VersionBuilder working. I am using Subversion, have the AssemblyInfo.cs file added as linked file. (Fixed all build errors along the way). When I run build.bat I get the generated build_output / code_drop folders. If I look inside build_output and examine the dlls I would assume there version numbers would be updated, but all I get is What am I doing wrong? Thanks
5/31/2009 10:50 PM | Michael

# re: UppercuT - Automated Builds - Getting Started Part 8 (Next Steps)

Sorry that is SolutionVersion.cs added as linked file not AssemblyInfo.cs.
5/31/2009 10:55 PM | michael

# re: UppercuT - Automated Builds - Getting Started Part 8 (Next Steps)

@Michael: When we have seen this happen, it's usually due to a mistake in the repository path.
Take a look in the UppercuT.config at the repository.path property. Can you paste that value into a browser window and have it get anywhere?

If so, open a command line in the top level folder (where build.bat is) and type build >build.log.
After it finishes open up the log and let me know what's going on in the assembly generation (pretty much at the start of the file).
6/1/2009 4:52 AM | Robz

# re: UppercuT - Automated Builds - Getting Started Part 8 (Next Steps)

So I was thinking about this after I posted. My SVN is a hosted SVN and I need to login first. I am assuming this is the problem. Any way to pass credetials?
6/1/2009 7:09 PM | michael

# re: UppercuT - Automated Builds - Getting Started Part 8 (Next Steps)

@Michael: I use google code for some of my projects. I get TortoiseSVN to cache credentials by having it remember them. Another way is to open a command line in the folder and use it to commit changes. svn commit "message".
We can talk more about this offline to get more details. Use the email address I sent you the other day.
6/1/2009 8:04 PM | Robz

# re: UppercuT - Automated Builds - Getting Started Part 8 (Next Steps)

Hi, i also have the same problem build is not getting updated always version s there for my .exe....
and i have tortoise svn to cache credentials too...
5/11/2010 6:52 AM | Afz

# re: UppercuT - Automated Builds - Getting Started Part 8 (Next Steps)

Afz: you need the command line version of svn. Look to collabnet for that. Open a command line and type "svn"
5/11/2010 10:27 AM | Robz

# re: UppercuT - Automated Builds - Getting Started Part 8 (Next Steps)

Hey thanks ya..
I could get the revision,
But build is not changing now
5/12/2010 4:54 AM | Afz

# re: UppercuT - Automated Builds - Getting Started Part 8 (Next Steps)

Afz: Build number ONLY changes on a build server. Locally it will always be zero.
5/15/2010 5:07 PM | Robz
Comments have been closed on this topic.

Powered by: