Piece of Cake: Assuring Specific Qualities of Product in ...
A Piece of Cake - DDD11 - Reading
Transcript of A Piece of Cake - DDD11 - Reading
A Piece of Cake
Gary Ewan Park
Email: [email protected]
Twitter: @gep13
Web: http://www.gep13.co.uk
C# powered cross platform build automation
What is a build?
Typical Build Workflow
Clean
Build
Unit Tests
Test Coverage
StyleCop FxCop
DupFinder InspectCode
Package Publish
Package Restore
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/
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…
9 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
• Podcasts
o http://msdevshow.com/2016/04/cakebuild-with-mattias-karlsson-and-gary-ewan-park/
o http://www.dotnetrocks.com/?show=1321
• Video
o https://www.youtube.com/watch?v=D0gWjHhJ3IU – Motz Codes Live
o https://vimeo.com/171704581 - NDC Oslo 2016
• 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/