Wolfpack.Contrib.Deployment

This package provides publisher components related to automated deployment and specifically deployment of NuGet based packages and includes the ability to execute package content once deployed (eg run an exe or unit test console runner).

These publishers all inherit from the FilteredResultPublisherBase class and will execute whenever a specific named HealthCheck creates a new result notification (it must be Result state "Success" and not be a critical error); this means that any HealthCheck becomes a trigger for one of these publishers to then respond to.

Included are...
  • DeploymentPublisher - this will simply check for an updated version to the packages specified and if a new version exists pull down the package (plus any dependent packages) to the configured download folder.
  • ExecuteDeploymentPublisher - this will download, unpack and then execute the command line it has been configured with and the exit code from the process is used to generate a HealthCheck notification.
  • NUnitDeploymentPublisher - this will download, unpack and then execute the nunit.console.exe, parse the xml result file and then generate HealthCheck notifications based on the number of tests passed, failed etc; this is optional if no tests fail (eg: no news is good news!).

Each publisher is easy to extend, the DeploymentPublisher provides hooks for altering it's behaviour post download and the ExecuteDeploymentPublisher provides overridable hooks for post command line execution processing (success, failure, error) - the NUnitDeploymentPublisher extends the ExecuteDeploymentPublisher which is itself an extension of DeploymentPublisher - these provide a good example if you want to create your own Deployment Publisher (eg: to support other unit test runners).

Install

Download the latest Wolfpack from codeplex...then you download & install this plug-in at a command line prompt in the Wolfpack installation folder with...
wolfpack.agent.exe /update:Wolfpack.Contrib.Deployment

Files installed...
  • \Wolfpack.Contrib.Deployment.dll
  • \Config\Publishers\deployment.contrib.castle.config (example deployment publisher config)
  • \Config\Publishers\exe.deployment.contrib.castle.config (example execute deployment publisher config)
  • \Config\Publishers\nunit.deployment.contrib.castle.config (example nunit deployment publisher config)

As these deployment publishers all need a HealthCheck to trigger them the best way to enable this is with the NuGet Release HealthCheck and so this package (Wolfpack.Contrib.Checks.NuGet) is also installed (as a dependent package). There is an accompanying "Demo" NuGet package which provides some NUnit tests and is used to showcase these deployment publishers. A NuGet Release HealthCheck configuration file, set up to look monitor the "Demo" package is also provided, just copy this to appropriate Config\Checks subfolder (eg: EveryMinute) and set the <Enabled> property to true.
  • \Config\Checks\triggerdemo.contrib.castle.config (config for NuGet Release HealthCheck)

Runtime

Any files/state left by the components? Yes, the download folder will contain all package(s) files. A state file will also be created with the name friendlyId.check.state.

Last edited Aug 22, 2012 at 12:20 PM by jimbobdog, version 15

Comments

No comments yet.