Having your cake, and eating it too! - DDDScotland

17
Having your Cake, and eating it too! Gary Ewan Park Email: [email protected] Twitter: @gep13 Web: http://www.gep13.co.uk

Transcript of Having your cake, and eating it too! - DDDScotland

Having your Cake, and eating it too!

Gary Ewan Park

Email: [email protected]

Twitter: @gep13

Web: 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/

Typical Build Workflow

Clean

Build

Unit Tests

Test Coverage

StyleCop FxCop

DupFinder InspectCode

Package Publish

Package Restore

How does Cake work?

build.cake cake.exe

#tool#addin#reference#load

Roslynor

Mono

nupkgExeMsiTests

Anything you can think of

ArgumentsConfiguration

What Tools am I able to use with Cake?

Chocolatey

DNU

DotCover

DupFinder

Fixie

GitLink GitReleaseManager

GitReleaseNotes

GitVersion

ILMerge

ILRepack InspectCode

MSBuild

MSTest

NSIS

NUnit

OctopusDeploy

OpenCover

ReportGenerator

ReportUnit

Roundhouse

SignTool

SpecFlow

TextTransform

WiX

XBuild

XUnit

IISXamarin

PowerShell

Gitter

Kudu

CMake

TopShelf

Yaml

Docker

Gulp

S3

FluentMigrator

EC2

XCode

Json

VsCode

WebDeploy

CloudFront

ReSharperReportsElasticLoadBalancing

DocFxWyam

StyleCop

StrongNameTool

Orchard

XdtTransform

Npm

Slack

Okay, but why do I need it?

What are the main philosophies of Cake?

• Non intrusive

• It should “just” work

• Be highly configurable

• No binaries should be checked into your repository

• Easy to implement your own tools

• Build should behave the same way regardless of

• Operating System

• Environment

We build Cake with Cake on…

8 different CI Servers 3 different operating systems

Can’t I just use… MAKEFAKECMakeMSBuildNAntPsakeBau?

Let’s bake some Cake!

Clean

Build

Unit Tests

Test Coverage

StyleCop FxCop

DupFinder InspectCode

Package Publish

Package Restore

Source Code

http://gep13.me/CakeDemos

Demos

Questions?

Feel free to get in touch

Email: [email protected]

Twitter: @gep13

Web: http://www.gep13.co.uk

Resources

• Cake Documentation

o http://cakebuild.net/docs

• MS Dev Show Podcast Episode

o http://msdevshow.com/2016/04/cakebuild-with-mattias-karlsson-and-gary-ewan-park/

• Motz Codes Live: Continuous Integration for Libraries with Jon Dick aka Redth

o https://www.youtube.com/watch?v=D0gWjHhJ3IU

• Source Code

o https://github.com/cake-build/cake

• Blog Posts

o Moving to Cake (C# Make) – Laurent Kempe http://laurentkempe.com/2016/04/05/Moving-to-Cake-CSharp-Make/