A Piece of Cake - NDC Oslo 2016
Transcript of 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
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
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
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
Cake has joined the .Net Foundation
http://www.dotnetfoundation.org/blog/cake-welcome
Questions?
Feel free to get in touchEmail: [email protected]
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/