Having your cake, and eating it too!

Preview:

Citation preview

Having your Cake, and eating it too!

Gary Ewan ParkEmail: gep13@gep13.co.ukTwitter: @gep13Web: http://www.gep13.co.uk

What is Cake?

A Definition…

“Cake (C# Make) is a cross platform build automation system with a C# DSL to do things like compiling code, copy files/folders, running unit tests, compress files and build NuGet packages.”

Reference http://cakebuild.net/

Okay, but why do I need it?

What are the main philosophies of Cake?

• Non intrusive• It should “just” work• Be highly configurable• Replace the parts that you don’t like• Easy to implement your own tools• No tools should be checked into your repository• Should behave the same way regardless of

• Operating System• Environment

As an example…

Can’t I just use… MAKEFAKECMakeMSBuildNAntPsakeBau

Example Cake Script

Typical Build Workflow

Clean

Build

Unit Tests(NUnit, xUnit,

MSTest)

Test Coverage

StyleCop FxCop

DupFinder InspectCode

Package Publish

Package Restore

Let’s bake some Cake!

Clean

Build

Unit Tests(NUnit, xUnit,

MSTest)

Test Coverage

StyleCop FxCop

DupFinder InspectCode

Package Publish

Package Restore

Demo 1NuGet Package Restore

Progress Check

Clean

Build

Unit Tests(NUnit, xUnit,

MSTest)

Test Coverage

StyleCop FxCop

DupFinder InspectCode

Package Publish

Package Restore

Demo 2Build the Solution

Progress Check

Clean

Build

Unit Tests(NUnit, xUnit,

MSTest)

Test Coverage

StyleCop FxCop

DupFinder InspectCode

Package Publish

Package Restore

Demo 3Unit Tests

Progress Check

Clean

Build

Unit Tests(NUnit, xUnit,

MSTest)

Test Coverage

StyleCop FxCop

DupFinder InspectCode

Package Publish

Package Restore

Demo 4Test Coverage

Progress Check

Clean

Build

Unit Tests(NUnit, xUnit,

MSTest)

Test Coverage

StyleCop FxCop

DupFinder InspectCode

Package Publish

Package Restore

Demo 5NuGet Pack

Progress Check

Clean

Build

Unit Tests(NUnit, xUnit,

MSTest)

Test Coverage

StyleCop FxCop

DupFinder InspectCode

Package Publish

Package Restore

Questions?

Feel free to get in touchEmail: gep13@gep13.co.uk

Twitter: @gep13Web: http://www.gep13.co.uk

Resources

• Cake Documentationo http://cakebuild.net/docs

• MS Dev Show Podcast Episodeo http://msdevshow.com/2016/04/cakebuild-with-mattias-karlsson-and-gary-ewan-park/

• Motz Codes Live: Continuous Integration for Libraries with Jon Dick aka Redtho https://www.youtube.com/watch?v=D0gWjHhJ3IU

• Source Codeo https://github.com/cake-build/cake

• Blog Postso Moving to Cake (C# Make) – Laurent Kempe

http://laurentkempe.com/2016/04/05/Moving-to-Cake-CSharp-Make/

Recommended