builds with a side of cake - codestock 2016
Post on 15-Apr-2017
316 Views
Preview:
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