Rob Reynolds | [email protected] | Twitter: ferventcoder.

24
Automated Builds: UppercuT Your Code! Rob Reynolds http://ferventcoder.com | [email protected] | Twitter: ferventcoder
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    214
  • download

    0

Transcript of Rob Reynolds | [email protected] | Twitter: ferventcoder.

Page 1: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

Automated Builds: UppercuT Your Code!

Rob Reynoldshttp://ferventcoder.com | [email protected] | Twitter: ferventcoder

Page 2: Rob Reynolds  | ferventcoder@gmail.com | 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?!

Page 3: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

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.

Page 4: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

SO…What is a build? Converting source to a usable

product

Page 5: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

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

Page 6: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

What is related to Build Automation? Continuous Integration

Cruise Control .NET | Team City Automated Deployments Automated Database Migrations

Page 7: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

What is an Automated Build Tool? Something scripted/built that

performs the build activities

Page 8: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

What is NOT an Automated Build Tool? Deployment Database Migrations

Page 9: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

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)

Page 10: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

What to use? MSBuild NAnt PSake Rake

Page 11: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

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

Page 12: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

What are they all missing? Conventions Speed to a valid build Repeatable Upgrade path

Page 13: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

THAT’S WHY WE CREATED

Page 14: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

SOMETHING JUST AS POWERFUL

Page 15: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

BUT

Page 16: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

MUCH, MUCH QUICKER & EASIER

Page 17: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

UppercuT

Page 18: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

Why UppercuT? Stop recreating the wheel Use an optimized process Introduce standards We need conventions Upgrade very quickly and easily

Page 19: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

What is UppercuT? Insanely easy to use build

framework! Opinionated NAnt with Conventions NAnt templated with a layer of

indirection NAnt for the masses!

Page 20: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

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

Page 21: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

How to use UppercuT? Drop in required files Answer three questions

Automated builds!

Page 22: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

When should I try UppercuT? Right now!

Already have builds? When it makes sense

No build server? Not required to start

Page 23: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.

Let the demos begin

Page 24: Rob Reynolds  | ferventcoder@gmail.com | Twitter: ferventcoder.