A Piece of Cake - NDC Oslo 2016
Transcript of A Piece of Cake - NDC Oslo 2016
![Page 1: A Piece of Cake - NDC Oslo 2016](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/1.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/2.jpg)
What is Cake?
![Page 3: A Piece of Cake - NDC Oslo 2016](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/3.jpg)
![Page 4: A Piece of Cake - NDC Oslo 2016](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/4.jpg)
![Page 5: A Piece of Cake - NDC Oslo 2016](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/5.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/6.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/7.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/8.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/9.jpg)
Okay, but why do I need it?
![Page 10: A Piece of Cake - NDC Oslo 2016](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/10.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/11.jpg)
We build Cake with Cake on…
8 different CI Servers 3 different operating systems
![Page 12: A Piece of Cake - NDC Oslo 2016](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/12.jpg)
Can’t I just use… MAKEFAKECMakeMSBuildNAntPsakeBau?
![Page 13: A Piece of Cake - NDC Oslo 2016](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/13.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/14.jpg)
Source Code
http://gep13.me/CakeDemos
![Page 15: A Piece of Cake - NDC Oslo 2016](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/15.jpg)
Demos
![Page 16: A Piece of Cake - NDC Oslo 2016](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/16.jpg)
Cake has joined the .Net Foundation
http://www.dotnetfoundation.org/blog/cake-welcome
![Page 17: A Piece of Cake - NDC Oslo 2016](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/17.jpg)
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](https://reader035.fdocuments.us/reader035/viewer/2022062823/587641821a28ab68098b85ed/html5/thumbnails/18.jpg)
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/