builds with a side of cake - codestock 2016

Post on 15-Apr-2017

316 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Builds with a side ofJamie Phillips Web: http://phillipsj.netTwitter: @phillipsj73Github: 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/

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 NuGetDNUDotCoverMSBuild Fixie

GitReleaseNotesGitTools

NUnit ILMergeOctopus DeployOpenCoverRoundhouse

GitReleaseManager

SignTool WiXXBuild

TextTransformxUnitReportGeneratorDupFinder

InspectCodeSpecFlowGitLink

plist

SwaggerReSharper

Squirrel*

Vagrant

WyamVsce

XamarinXCode

YAMLXdtTransform*

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

top related