Skip to main content

Deployment - the final (.Net) frontier

[Update 19th Apr 2012] - mission complete!...v2.4.0 of Wolfpack has been released and this includes a new set of plugins that can automatically download a NuGet package then execute a deployment tool (eg: DropkicK, MSBuild.exe) - it can even run NUnit tests (via the console runner).

[Original Post]
Another day, another project and deployment raises its head...

Thinking that this problem must have been cracked by now I had a look around the .Net landscape and found two interesting solutions.
  • Octopus Deploy - a .Net convention based deployment system using NuGet packages, loosely based on AppHarbour's approach.
  • DropkicK (aka DK) - another awesome initiative from Dru Sellers et al.
I like the simplicity of Octopus but also like DK's  fluent code based deployment.

Hmmm, this has got me thinking - Wolfpack could easily be adapted to be used as a deployment agent.

Wolfpack can already monitor a NuGet feed for new package releases and currently sends an alert if a new version of a package is detected; a small modification would enable it to instead pull down and install the package. The package format would be NuGet and it would use DK to do the "install" (included in the package itself, Tools folder with some convention to find the DK deployment implementation dlls).

You would create a NuGet feed per environment you need to deploy to. Each target machine would be running Wolfpack (akin to an Octopus "Tentacle") which would be configured to monitor the associated (correct environment) NuGet feed. "Deployment" would simply consist of publishing the package to the feed, from this point on it would be automated by Wolfpack, detect, download, deploy -> after which Wolfpack would publish an alert to let you know what the outcome was (success/fail) plus some stats.

Would I ever build this Wolfpack feature? I dunno, lets's not a lot of code and it would give me an excuse to really play with DropkicK!

Anyone interested in a deployment mashup with Wolfpack + NuGet + DropkicK?


Henning76 said…

This would be very interesting. Currently doing some work with Octopus, but it seems a bit .. finicky at the moment while the codebase is still stabilizing..
James Simmonds said…
Wow - rapid feedback!

Wolfpack is pretty stable so that's a bonus.

I'd mash in Sidewinder, my NuGet downloader/installer project to get the package from the feed (in response to Wolfpack detecting a new version) then all it would need to do is execute dk.exe...simple!

Ok, so I'll start work on this - it looks too easy to get something up and running not too!


Harry McIntyre said…
Interesting idea - keep us posted!
James Simmonds said…
I've got some alpha code for a new wolfpack publisher plugin that will download the nuget package (once it has detected a new version) and then attempts to execute DK, this is pretty much code complete apart from tracking the DK result.

However it's fairly untested as the test DK package I am using doesn't seem to work (no deployment found error) so haven't progressed much further.

The code is in the wolfpack contrib repository, just get the latest source. You will need to build it then configure wolfpack with the nuget release healthcheck and the new nuget deployment publisher (to download and execute DK). I haven't created the nuget package for the deployment publisher yet so install is manual for now.

Once I get a working DK package I will build the new plugin as a nuget package and create the wiki page for it.

If you want to try it out before then drop me a line and I'll help you out setting it up.


Harry McIntyre said…
Hi James, I would be interested in hearing a bit more about this deployment mechanism. My address is mcintyre321 @t gmail d.t com

Look forward to hearing from you!
James Simmonds said…
Well it only took 6 months to get this completed...v2.4 of Wolfpack (+ deployment contrib project) can now automate your deployments (& testing) - feedback welcome!

Popular posts from this blog

Walk-Thru: Using Wolfpack to automatically deploy and smoke test your system

First, some history... The advent of NuGet has revolutionised many many aspects of the .Net ecosystem; MyGet, Chocolatey & OctopusDeploy to name a few solutions building upon its success bring even more features to the table.

I also spotted that NuGet could solve a problem I was having with my OSS System Monitoring software Wolfpack; essentially this is a core application framework that uses plugins for extension (Wolfpack Contrib) but how to unify, standardise and streamline how these plugins are made available? NuGet to the rescue again - I wrapped the NuGet infrastructure (I deem NuGet to be so ubiquitous and stable that is has transcended into the software "infrastrucuture" hall of fame) with a new OSS project called Sidewinder. Sidewinder allows me to wrap all my little extension and plugins in NuGet packages and deploy them directly from the Wolfpack application - it even allows me to issue a new version of Wolfpack and have Wolfpack update itself, sweet huh?


Geckoboard Countdown Widget v2

v2 is here, now with added colours! This time using the RAG Numbers widget to display your date countdown - as you get nearer the date the number will change from green to amber then red.

The new url is:!
Note 1: notice the new /rag/ path and the msg querystring param.
Note 2: the original v1 url still works

To use this on your Geckoboard add a new "Custom Widget/RAG Numbers" widget. By default the number will turn amber at 10 or less days to go and red at 3 or less days to go however you can change these with the querystring (see below).

Required querystring params
date: "yyyy-mm-dd" format, this is the target date to countdown totz: timezone offset in hours from GMT that you are in. Can be negative if you are behind GMT
Optional querystring params
msg: the label that appears next to the number of days (remember to encode spaces as +). The default is "Days Remaining" if you…

Resharper add-in idea - highlight IDisposable vars

[Update 18th July 2013]
@RobGibbens and Greg Hurlman picked up on this - Rob pointed out that there is an FxCop rule that can do this and Greg suggested a Visual Studio extension. I've had a quick look at the Visual Studio options and it looks like an "Editor Extension" is a good fit....hmmm, Project New, click...doh...dammit I really don't have time for this but it looks a fun little diversion! I'll update here if I get anything working.

[Original Post]
Had an interesting idea for a Visual Studio Resharper add-in the other day but don't have the time to implement it so thought I would put it out might already exist (and hopefully someone can point me in the right direction) or someone will build it (Darren Voisey where are you?!).

The idea is very simple really - when you have a variable for an object that implements IDisposable it gets highlighted or a tell-tale is displayed to let you know it should be disposed or should be wrapped in a using sta…