UppercuT - The Insanely Easy to Use Automated Build Framework

UppercuT is the insanely easy to use Automated Build Framework! Automated Builds as easy as (1) solution name, (2) source control path, (3) company name for most projects!!!  Uppercut was recently called NAnt for the masses!

UppercuT is for developers who want a powerful build framework without a lot of set up work. UppercuT is for anyone who needs a standard way of building applications across an entire organization. UppercuT is for anyone who wants to concentrate on just writing code.

UppercuT_Logo

What can UppercuT do for you?

  • Compiles your application (what you get for F5 in Visual Studio)
  • Versions the local code - VersionBuilder
  • Runs your unit tests
  • Runs NCover
  • Runs NDepend (you will need a license - does not come with UppercuT)
  • Creates environment configuration files (using ENV.settings files and config.template files) - ConfigBuilder 
  • Packages your application for deployment
  • Can create environment specific deployment scripts - DeploymentBuilder
  • Along the way, it can run custom tasks for you.

Why does the world need another build framework?

We already have NAnt. Why do we need another framework? The answer is that we don't need another framework.  What we need is to get from no automated builds to automated builds faster. Much faster! Many of us carry around our build scripts with us and pick up a little here and there to make them better. That is where the ideas for UppercuT came in. 

  • We need conventions.
  • We need an abstracted build framework that is smart and extendable.
  • We need a build framework that was basically plug and play.
  • We need to go from zero to builds in less than 5 minutes.

From the FAQs:

How mature is UppercuT? UppercuT and the ideas behind UppercuT are actively being used in over 60 projects as of Early 2009.  The project may look young, and in it's current location and revisions, it is. The ideas behind it are not new, they are tried and tested ideas.  We decided to release to the general public an internal template for building that we have been using and that became UppercuT. UppercuT has since added ideas and practices to it that have become reciprocal to the internal framework.

Why another build framework? UppercuT is not another build framework. It takes the ideas from everything you and others have done in the past and puts that into a set of NAnt scripts that will automatically apply those ideas.  It also becomes a very easy interface for you to use and apply to any project.  You can pick up the scripts and apply them to another project and have an automated build in five minutes.

I already have a build framework in place, why should I use yours? If you already have a build framework in place, that is no reason to switch.  If you want more functionality than you may already have, like readying your build output for deployment, or zipping up your deploying files, or an easier way to run your unit tests and see the results, you may want to take a look at UppercuT.  Plus, it's super simple to get set up to run UppercuT (what is your solution name? What is the path to your repository? What's your company name? That's really all of the questions you need to answer).

Who should use UppercuT?

UppercuT is not for everyone. Some have some very specific needs for their builds. Some may be very advanced in automated builds. On the other hand, many don't really want to mess with NAnt (but if you do, you can still use this framework to get started). Most developers may not be ready to switch to something like PSake or Rake where you need to learn another language.  UppercuT is for developers who want a powerful build framework without a lot of set up work. UppercuT is for anyone who needs a standard way of building applications across an entire organization. UppercuT is for anyone who wants to concentrate on just writing code.

How do I use UppercuT?

Have a look at the page that tells you how to do just that: http://uppercut.pbworks.com/HowToUse

  • You drop in the files and edit the UppercuT.config file. Easy edits:
<property name="project.name" value="__SOLUTION_NAME_WITHOUT_SLN_EXTENSION__" overwrite="false" />
<property name="path_to_solution" value="." overwrite="false" />
<property name="repository.path" value="__REPOSITORY_PATH__" overwrite="false" />
<property name="company.name" value="__COMPANY_NAME__" overwrite="false" />

becomes

<property name="project.name" value="UppercuT" overwrite="false" />
<property name="path_to_solution" value="." overwrite="false" />
<property name="repository.path" value="http://uppercut.googlecode.com/svn/" overwrite="false" />
<property name="company.name" value="FerventCoder Software and ACuriousMind Software" overwrite="false" />

My solution name is uppercut.sln, so I include it as the project name without the .sln extension. The repository path is not down to a trunk or a branch, but at the very top level of the repository.  The company is either a company you work for or your own personal company if you are open source.

More information on the configuration: http://ferventcoder.com/archive/2009/05/17/uppercut---automated-builds---uppercut.config.aspx

  • Then you just call build.bat from a command line.
    uppercut_running
  • Done. Like dinner. Now back to writing code. 

Ready to UppercuT your code?

Download the application ready to go here: http://code.google.com/p/uppercut/downloads/list

Get the source here (dog foods itself to build): http://uppercut.googlecode.com/svn/trunk/

Getting started - http://ferventcoder.com/category/uppercut.aspx

Get involved with the project - contact me!

With this knowledge, you shall build.

kick it on DotNetKicks.com

Print | posted @ Friday, May 8, 2009 4:53 PM

Comments on this entry:

Gravatar # re: UppercuT - The Insanely Easy to Use Automated Build Framework
by Robz at 5/20/2009 7:20 PM

I've created a category that has all UppercuT related posts: http://ferventcoder.com/category/uppercut.aspx
Gravatar # re: UppercuT - The Insanely Easy to Use Automated Build Framework
by Krakex at 5/26/2009 4:17 AM

I cannot make this thing work... I changed UppercuT.config as described, but nothing happens, and I cannot find build report...

Build.bat says this:

BUILD FAILED

D:\Temp\UpperCut\BuildScripts\_generate_assembly.build(35,6):
'D:\Temp\UpperCut\BuildScripts\..\d:\Projects\Project\Code\Soluti
nVersion.cs' is not a valid value for attribute 'output' of <asminfo ... />.
The given path's format is not supported.

Total time: 0.1 seconds.
Gravatar # re: UppercuT - The Insanely Easy to Use Automated Build Framework
by Robz at 5/26/2009 12:30 PM

@Krakex: You pointed out something important that I should make clearer. It's RELATIVE path to solution file.

'D:\Temp\UpperCut\BuildScripts\..\d:\Projects\Project\Code\Soluti
nVersion.cs' is NOT valid.

And the build scripts need to sit in the top level folder of your project, not off to the side.

I will have a post coming soon on getting started.
Check back here:
http://ferventcoder.com/category/uppercut.aspx
Comments have been closed on this topic.