mastering the pipeline

Post on 26-May-2015

166 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Mastering the pipeline

Jorrit SalverdaTechnical architect @ AKQA Amsterdam

What they have in common

● Little time for project setup

● Many deployments near go-live

● Pipelines up to UAT/PROD

Goals

● Short feedback loop

● Rapid deployments

● Optimised for build grids

● Executable on any machine

● Easy to set up

MSBuild by convention

● Convention over configuration

● Open sourced on Github (MIT license)

● Easy to upgrade

● Conventions can be overridden

Conventions

● Source directory structure

● Javascript and css dirs

● Postfixes for project names

● *.Website

● *.Database

● *.UnitTests

● ... and more

/t:Build

● C# (versions the assemblies)

● ASP.NET views

● Javascript (JSHint)

/t:RunUnitTests

● Compile only if needed

● NUnit

● Machine Specification

● MSTest

/t:Release

● Minify (YUI Compressor)

● Version images, fonts, flash

● Create Azure packages

● Transform configs

● Zip artefacts

/t:RunIntegrationTests

● Deploy database and website to INT

● Run integration tests

/t:AnalyzeWithSonar

● Code quality (FxCop)

● Coverage (OpenCover)

● Sonar

/t:Deploy /p:DeployEnvironment=UAT

● To IIS (MSDeploy)

● To Azure (Powershell commandlets)

● Windows Services (Robocopy)

/t:Deploy /p:DeployEnvironment=PROD

● Untested configuration!

What's next?

● Automated rollback if smoke test fails

● Hook into monitoring (Github)

● Cross-browser testing (The Guardian)

// todo

● Copy those scripts...

Thanks

msbuild by convention github repo: http://goo.gl/w9OcR

introductory blog post:http://goo.gl/Y0cNW

reach me at:jorrit.salverda@akqa.com

top related