Rob Reynolds | | Twitter: ferventcoder
What will we accomplish? Learn More about Builds Talk about an Insanely Easy to Use Build Tool Demos – after all this is a technical presentation right?!
What is a build? In the field of computer software, the term software build refers either to the process of converting source code files into standalone software artifact(s) that can be run on a computer, or the result of doing so. One of the most important steps of a software build is the compilation process where source code files are converted into executable code.
SO…What is a build? Converting source to a usable product
What is Build Automation? Scripting activities Compiling – What has F5 done for you lately? Quality Indicators - Running verifications NCover, NDepend, Symbian, etc Automated Tests Packaging - for Release Versioning DLLs DRYing activities – Hang it out to dry
What is related to Build Automation? Continuous Integration Cruise Control.NET | Team City Automated Deployments Automated Database Migrations
What is an Automated Build Tool? Something scripted/built that performs the build activities
What is NOT an Automated Build Tool? Deployment Database Migrations
Why Automated Builds? Improves quality Redundant tasks Reduces errors – repeatable Frees you up Easier maintenance Eliminates dependencies Saves time and money – Stop stealing from your employer! (thanks Jeremy Miller)
What to use? MSBuild NAnt PSake Rake
What to use? MSBuild Built in But – does not shift frameworks well NAnt – XML Yo! Tried and tested – old hat But - The angle bracket tax PSake – Powershell Powershell, need I say more? But – new kid on the block Rake – Ruby Make Powerful But - Another language to learn
What are they all missing? Conventions Speed to a valid build Repeatable Upgrade path
THAT’S WHY WE CREATED
SOMETHING JUST AS POWERFUL
BUT
MUCH, MUCH QUICKER & EASIER
UppercuT
Why UppercuT? Stop recreating the wheel Use an optimized process Introduce standards We need conventions Upgrade very quickly and easily
What is UppercuT? Insanely easy to use build framework! Opinionated NAnt with Conventions NAnt templated with a layer of indirection NAnt for the masses!
UppercuT Conventions Local builds Version assemblies using source control revisions Test Automation References preferred to be local Quality indicators are a must Building and packaging are separate Build and deploy are separate concerns
How to use UppercuT? Drop in required files Answer three questions Automated builds!
When should I try UppercuT? Right now! Already have builds? When it makes sense No build server? Not required to start
Let the demos begin