SlideShare a Scribd company logo
Builds with a
side of
Jamie Phillips
Web: http://phillipsj.net
Twitter: @phillipsj73
Github: phillipsj
BUILD TOOLS VS CI SERVERS
• Build runs the same regardless of CI server used. Can easily port your
build from TeamCity to Jenkins.
• Builds run the same locally as they do on the CI server
• Part of source control
• Separation of Concerns --
https://lostechies.com/derekgreer/2016/02/28/separation-of-concerns-
application-builds-continuous-integration/
Builds with a side of Cake - CodeStock 2016
MSBUILD
<Project DefaultTargets="Compile“ xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name = "Compile">
<!-- Run the Visual C# compilation using input files of type CSFile -->
<CSC Sources = "@(CSFile)“ OutputAssembly = "$(appname).exe">
<!-- Set the OutputAssembly attribute of the CSC task to the name of the executable file that is
created -->
<Output TaskParameter = "OutputAssembly“ ItemName = "EXEFile" />
</CSC>
<!-- Log the file name of the output file -->
<Message Text="The output file is @(EXEFile)"/>
</Target>
</Project>
ALBACORE
require 'albacore'
require 'albacore/tasks/versionizer' require 'albacore/ext/teamcity'
Albacore::Tasks::Versionizer.new :versioning
desc 'Perform fast build (warn: doesn't d/l deps)'
build :quick_build do |b|
b.logging = 'detailed'
b.sln = 'src/MyProj.sln'
end
FAKE
#r "tools/FAKE/tools/FakeLib.dll" // include Fake lib
open Fake
Target "Test" (fun _ ->
trace "Testing stuff..."
)
Target "Deploy" (fun _ ->
trace "Heavy deploy action"
)
"Test" // define the dependencies
==> "Deploy"
Run "Deploy"
CAKE
var target = Argument("target", "Default");
Task("Default")
.Does(() =>
{
Information("Hello World!");
});
RunTarget(target);
WHAT IS CAKE?
• 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.
• http://cakebuild.net
WHY CAKE?
• C#
• Consistent across environments
• Build server agnostic
• Great Plugin System -- Addins
• .NET at your finger tips
• No other runtime dependencies
• Repeatable
• Reduced learning curve
TOOLS
Chocolatey GitVersionMSTest NSIS NuGet
DNUDotCoverMSBuild Fixie
GitReleaseNotesGitTools
NUnit ILMerge
Octopus DeployOpenCoverRoundhouse
GitReleaseManager
SignToolWiX
XBuild
TextTransform
xUnit ReportGeneratorDupFinder
InspectCodeSpecFlow
GitLink
plist
SwaggerReSharper
Squirrel*
Vagrant
Wyam
Vsce
Xamarin
XCode
YAML
XdtTransform*
PowershellTopShelfStrongNameToolWebDeploy
Unity
MagicChunks
IIS
Orchard*
SOMETHING MISSING?
HOW DO YOU US IT?
• Web Apps
• Desktop Apps
• Libraries
• Electron Apps
EXAMPLES
SOME OF OUR PLUGINS
• Cake.XdtTransform
• Cake.Orchard
• Cake.Squirrel
• Cake.AzureStorage
QUESTIONS

More Related Content

PPTX
Job DSL Plugin for Jenkins
PDF
Using CI for continuous delivery Part 1
PPTX
Going Serverless with Azure Functions
PPTX
Introduction to Cross Platform Mobile Apps (Xamarin)
PPTX
Azure Web Jobs
PPTX
Using and extending Alfresco Content Application
PPTX
Configuration As Code: The Job DSL Plugin
PPTX
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
Job DSL Plugin for Jenkins
Using CI for continuous delivery Part 1
Going Serverless with Azure Functions
Introduction to Cross Platform Mobile Apps (Xamarin)
Azure Web Jobs
Using and extending Alfresco Content Application
Configuration As Code: The Job DSL Plugin
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)

What's hot (20)

PPTX
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
PPTX
MAUI Blazor - One App that runs everywhere
PPTX
Intro to Azure Webjobs
PDF
Custom workflow in sharepoint
PPTX
Олександр Лінивий — Multisite platform with continuous delivery process for m...
PPT
Front-End Tools and Workflows
PDF
The Job DSL Plugin: Introduction & What’s New
PPTX
Blazor and Azure Functions - a serverless approach
PPTX
Jenkins workflows and Best Practices
PPTX
Deep dive into share point framework webparts
PDF
Ansible Introduction
PDF
Jenkins Reviewbot
PPTX
Serverless in Azure with Functions
PPTX
MeteorJS Session
PPTX
Asp.net core 1.0 (Peter Himschoot)
PPTX
Building solutions with the SharePoint Framework - introduction
PPTX
Deploying ASP.Net Core apps in Docker Containers
PPTX
Introduction to jenkins
PPTX
Super tools to boost productivity in React dev env!
PPTX
ASP.NET 5 Overview
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?
MAUI Blazor - One App that runs everywhere
Intro to Azure Webjobs
Custom workflow in sharepoint
Олександр Лінивий — Multisite platform with continuous delivery process for m...
Front-End Tools and Workflows
The Job DSL Plugin: Introduction & What’s New
Blazor and Azure Functions - a serverless approach
Jenkins workflows and Best Practices
Deep dive into share point framework webparts
Ansible Introduction
Jenkins Reviewbot
Serverless in Azure with Functions
MeteorJS Session
Asp.net core 1.0 (Peter Himschoot)
Building solutions with the SharePoint Framework - introduction
Deploying ASP.Net Core apps in Docker Containers
Introduction to jenkins
Super tools to boost productivity in React dev env!
ASP.NET 5 Overview
Ad

Similar to Builds with a side of Cake - CodeStock 2016 (20)

PDF
Enhanced cics cloud enablement and dev ops capabilities
PPTX
Aleksey_Demedetskiy_Jenkins
PPTX
S103 cics cloud and dev ops agility
PDF
Visual Studio 2017 Launch Event
PPTX
ACDKOCHI19 - CI / CD using AWS Developer Tools
PDF
HOW TO DRONE.IO IN CI/CD WORLD
PPTX
Tfs Build vNext (Jelle Druyts)
PPTX
Share seattle cics cloud
PPT
Continuos integration for iOS projects
PDF
Jenkins-CI
PDF
OpenShift Build Pipelines @ Lightweight Java User Group Meetup
PDF
Саша Белецкий "Continuous Delivery в продуктовой разработке"
PDF
Jazoon12 355 aleksandra_gavrilovska-1
PDF
Continuous Delivery of Cloud Applications with Docker Containers and IBM Bluemix
PPT
Jenkins CI
PPTX
Will hall - Accelerating Infrastructure as Code and Configuration Management ...
PPTX
Accelerating Infrastructure as Code with CI in AWS.
PDF
Priming Your Teams For Microservice Deployment to the Cloud
PDF
Knative And Pivotal Function As a Service
PPTX
Automating That "Other" OS
Enhanced cics cloud enablement and dev ops capabilities
Aleksey_Demedetskiy_Jenkins
S103 cics cloud and dev ops agility
Visual Studio 2017 Launch Event
ACDKOCHI19 - CI / CD using AWS Developer Tools
HOW TO DRONE.IO IN CI/CD WORLD
Tfs Build vNext (Jelle Druyts)
Share seattle cics cloud
Continuos integration for iOS projects
Jenkins-CI
OpenShift Build Pipelines @ Lightweight Java User Group Meetup
Саша Белецкий "Continuous Delivery в продуктовой разработке"
Jazoon12 355 aleksandra_gavrilovska-1
Continuous Delivery of Cloud Applications with Docker Containers and IBM Bluemix
Jenkins CI
Will hall - Accelerating Infrastructure as Code and Configuration Management ...
Accelerating Infrastructure as Code with CI in AWS.
Priming Your Teams For Microservice Deployment to the Cloud
Knative And Pivotal Function As a Service
Automating That "Other" OS
Ad

Recently uploaded (20)

PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
System and Network Administraation Chapter 3
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Nekopoi APK 2025 free lastest update
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
Essential Infomation Tech presentation.pptx
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
System and Network Administration Chapter 2
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
AI in Product Development-omnex systems
PPTX
ai tools demonstartion for schools and inter college
PPTX
Transform Your Business with a Software ERP System
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Design an Analysis of Algorithms I-SECS-1021-03
System and Network Administraation Chapter 3
wealthsignaloriginal-com-DS-text-... (1).pdf
Understanding Forklifts - TECH EHS Solution
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Nekopoi APK 2025 free lastest update
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Softaken Excel to vCard Converter Software.pdf
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Essential Infomation Tech presentation.pptx
Wondershare Filmora 15 Crack With Activation Key [2025
System and Network Administration Chapter 2
How Creative Agencies Leverage Project Management Software.pdf
Reimagine Home Health with the Power of Agentic AI​
AI in Product Development-omnex systems
ai tools demonstartion for schools and inter college
Transform Your Business with a Software ERP System
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...

Builds with a side of Cake - CodeStock 2016

  • 1. Builds with a side of Jamie Phillips Web: http://phillipsj.net Twitter: @phillipsj73 Github: phillipsj
  • 2. BUILD TOOLS VS CI SERVERS • Build runs the same regardless of CI server used. Can easily port your build from TeamCity to Jenkins. • Builds run the same locally as they do on the CI server • Part of source control • Separation of Concerns -- https://lostechies.com/derekgreer/2016/02/28/separation-of-concerns- application-builds-continuous-integration/
  • 4. MSBUILD <Project DefaultTargets="Compile“ xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name = "Compile"> <!-- Run the Visual C# compilation using input files of type CSFile --> <CSC Sources = "@(CSFile)“ OutputAssembly = "$(appname).exe"> <!-- Set the OutputAssembly attribute of the CSC task to the name of the executable file that is created --> <Output TaskParameter = "OutputAssembly“ ItemName = "EXEFile" /> </CSC> <!-- Log the file name of the output file --> <Message Text="The output file is @(EXEFile)"/> </Target> </Project>
  • 5. ALBACORE require 'albacore' require 'albacore/tasks/versionizer' require 'albacore/ext/teamcity' Albacore::Tasks::Versionizer.new :versioning desc 'Perform fast build (warn: doesn't d/l deps)' build :quick_build do |b| b.logging = 'detailed' b.sln = 'src/MyProj.sln' end
  • 6. FAKE #r "tools/FAKE/tools/FakeLib.dll" // include Fake lib open Fake Target "Test" (fun _ -> trace "Testing stuff..." ) Target "Deploy" (fun _ -> trace "Heavy deploy action" ) "Test" // define the dependencies ==> "Deploy" Run "Deploy"
  • 7. CAKE var target = Argument("target", "Default"); Task("Default") .Does(() => { Information("Hello World!"); }); RunTarget(target);
  • 8. WHAT IS CAKE? • 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. • http://cakebuild.net
  • 9. WHY CAKE? • C# • Consistent across environments • Build server agnostic • Great Plugin System -- Addins • .NET at your finger tips • No other runtime dependencies • Repeatable • Reduced learning curve
  • 10. TOOLS Chocolatey GitVersionMSTest NSIS NuGet DNUDotCoverMSBuild Fixie GitReleaseNotesGitTools NUnit ILMerge Octopus DeployOpenCoverRoundhouse GitReleaseManager SignToolWiX XBuild TextTransform xUnit ReportGeneratorDupFinder InspectCodeSpecFlow GitLink plist SwaggerReSharper Squirrel* Vagrant Wyam Vsce Xamarin XCode YAML XdtTransform* PowershellTopShelfStrongNameToolWebDeploy Unity MagicChunks IIS Orchard*
  • 12. HOW DO YOU US IT? • Web Apps • Desktop Apps • Libraries • Electron Apps
  • 14. SOME OF OUR PLUGINS • Cake.XdtTransform • Cake.Orchard • Cake.Squirrel • Cake.AzureStorage

Editor's Notes

  • #10: Make the point that we already do so many languages, while it is great to learn another, it could lower the bus factor going with a different language that isn’t used by whole team. Also allows all devs to participate in build.