Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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 ...
MSBUILD
<Project DefaultTargets="Compile“ xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name = "Com...
ALBACORE
require 'albacore'
require 'albacore/tasks/versionizer' require 'albacore/ext/teamcity'
Albacore::Tasks::Versioni...
FAKE
#r "tools/FAKE/tools/FakeLib.dll" // include Fake lib
open Fake
Target "Test" (fun _ ->
trace "Testing stuff..."
)
Ta...
CAKE
var target = Argument("target", "Default");
Task("Default")
.Does(() =>
{
Information("Hello World!");
});
RunTarget(...
WHAT IS CAKE?
• Cake (C# Make) is a cross platform build automation system with a C#
DSL to do things like compiling code,...
WHY CAKE?
• C#
• Consistent across environments
• Build server agnostic
• Great Plugin System -- Addins
• .NET at your fin...
TOOLS
Chocolatey GitVersionMSTest NSIS NuGet
DNUDotCoverMSBuild Fixie
GitReleaseNotesGitTools
NUnit ILMerge
Octopus Deploy...
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
Builds with a side of Cake - CodeStock 2016
Upcoming SlideShare
Loading in …5
×

Builds with a side of Cake - CodeStock 2016

623 views

Published on

On Saturday July 16th I presented a talk at CodeStock 2016 called "Builds with a side of Cake", referencing the cake build tool. http://cakebuild.net/

Published in: Software
  • Be the first to comment

  • Be the first to like this

Builds with a side of Cake - CodeStock 2016

  1. 1. Builds with a side of Jamie Phillips Web: http://phillipsj.net Twitter: @phillipsj73 Github: phillipsj
  2. 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/
  3. 3. 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>
  4. 4. 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
  5. 5. 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"
  6. 6. CAKE var target = Argument("target", "Default"); Task("Default") .Does(() => { Information("Hello World!"); }); RunTarget(target);
  7. 7. 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
  8. 8. 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
  9. 9. 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*
  10. 10. SOMETHING MISSING?
  11. 11. HOW DO YOU US IT? • Web Apps • Desktop Apps • Libraries • Electron Apps
  12. 12. EXAMPLES
  13. 13. SOME OF OUR PLUGINS • Cake.XdtTransform • Cake.Orchard • Cake.Squirrel • Cake.AzureStorage
  14. 14. QUESTIONS

×