Ryan Britton - 251 - Jul 10, 2014

Hey Demis,
I was wondering if you had any gems regarding automated deployments, continuous integration and version control (with a slant towards nuget).

We’re busy setting up a project for a particular client where we are publishing their modules (and the clients that connect to them) as nuget packages (to ease distribution and versioning) . We’re using TeamCity to automate the builds and TFS for source control, publishing to TC’s custom Nuget feed and then using Octopus to deploy everything to their QA and Live environments (build-trigger on the QA deployment and manual trigger for Live).

We’ve butted our head against quite a few “low branches” along the way, like orchestrating the versioning of common infrastructure packages etc.

I figured that this (the strategy of breaking an application down into component parts and versioning them properly, and then automating the build/deployment process) was probably something you have quite a lot of experience in.

How are you currently handling deployments for SS? What is your personal take on operational management and deployment of SS-based solutions?

Actually my CI setup isn’t very sophisticated. I’m just using TeamCity to do the builds.

Most of the actual build logic is kept outside of TeamCity in msbuild projs that’s checked in with each project, e.g:
https://github.com/ServiceStack/ServiceStack/blob/master/build/build.proj

To maintain the version number I use a parent “shell” project’s build counter for the version number that all other projects are dependent on. Artefacts dependencies are used to copy over built dlls to dependent projects.

The actual deployment just uses artefacts to copy all the .nupkgs / .symbols into their own directories then a separate deploy project the publishes those .nupkgs to MyGet and NuGet.

For deployment of earlier demo websites on http://mono.servicestack.net/ I just used xcopy deployment. For some of the later demo’s I just pulled from GitHub, built the binaries and hosted with Nginx/MonoFastCGI from there.

For servicestack.net websites and my new projects I’m now deploying to AWS, first using the wizard to get the right AWS configuration to use in a .bat script for subsequent command-line deployments as described in:  https://github.com/ServiceStack/HttpBenchmarks#deploying-to-aws

Ryan Britton:

thanks for the info and the links, Demis!