a piece of cake - ndc oslo 2016

18
A Piece of Cake Gary Ewan Park Email: [email protected] Twitter: @gep13 Web: http://www.gep13.co.uk C# powered cross platform build automation

Upload: gary-park

Post on 11-Jan-2017

273 views

Category:

Software


0 download

TRANSCRIPT

Page 1: A Piece of Cake - NDC Oslo 2016

A Piece of Cake

Gary Ewan ParkEmail: [email protected]: @gep13Web: http://www.gep13.co.uk

C# powered cross platform build automation

Page 2: A Piece of Cake - NDC Oslo 2016

What is Cake?

Page 3: A Piece of Cake - NDC Oslo 2016
Page 4: A Piece of Cake - NDC Oslo 2016
Page 5: A Piece of Cake - NDC Oslo 2016

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/

Page 6: A Piece of Cake - NDC Oslo 2016

Typical Build Workflow

Clean

Build

Unit Tests

Test Coverage

StyleCop FxCop

DupFinder InspectCode

Package Publish

Package Restore

Page 7: A Piece of Cake - NDC Oslo 2016

How does Cake work?

build.cake cake.exe

#tool#addin#reference#load

Roslynor

Mono

nupkgExeMsiTests

Anything you can think of

ArgumentsConfiguration

Page 8: A Piece of Cake - NDC Oslo 2016

What Tools am I able to use with Cake?

Chocolatey

DNU

DotCover

DupFinder

Fixie

GitLink GitReleaseManager

GitReleaseNotes

GitVersion

ILMerge

ILRepack InspectCode

MSBuild

MSTest

NSISNUnit

OctopusDeploy

OpenCover

ReportGenerator

ReportUnit

Roundhouse

SignTool

SpecFlow

TextTransform

WiX

XBuild

XUnit

IISXamarin

PowerShell

Gitter

KuduCMake

TopShelf

Yaml

Docker

Gulp

S3

FluentMigrator

EC2

XCode

Json

VsCode

WebDeploy

CloudFront

ReSharperReportsElasticLoadBalancing

DocFxWyam

StyleCop

StrongNameTool

Orchard

XdtTransform

Npm

Slack

Page 9: A Piece of Cake - NDC Oslo 2016

Okay, but why do I need it?

Page 10: A Piece of Cake - NDC Oslo 2016

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

Page 11: A Piece of Cake - NDC Oslo 2016

We build Cake with Cake on…

8 different CI Servers 3 different operating systems

Page 12: A Piece of Cake - NDC Oslo 2016

Can’t I just use… MAKEFAKECMakeMSBuildNAntPsakeBau?

Page 13: A Piece of Cake - NDC Oslo 2016

Let’s bake some Cake!

Clean

Build

Unit Tests

Test Coverage

StyleCop FxCop

DupFinder InspectCode

Package Publish

Package Restore

Page 14: A Piece of Cake - NDC Oslo 2016

Source Code

http://gep13.me/CakeDemos

Page 15: A Piece of Cake - NDC Oslo 2016

Demos

Page 16: A Piece of Cake - NDC Oslo 2016

Cake has joined the .Net Foundation

http://www.dotnetfoundation.org/blog/cake-welcome

Page 17: A Piece of Cake - NDC Oslo 2016

Questions?

Feel free to get in touchEmail: [email protected]

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

Page 18: A Piece of Cake - NDC Oslo 2016

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/