Endjin - Home

Create a custom TeamCity PowerShell MetaRunner to Notify NewRelic that new deployment has occurred

by Howard van Rooijen

Last month I wrote a guest blog post for JetBrains; a detailed step by step guide for creating a custom TeamCity MetaRunner to notify NewRelic that a new deployment has occurred based on a case study I wrote earlier in the year called “From Chaos, Through Fear, To Confidence” which details an ALM and DevOps transformation project we carried out for one of our clients:

devops feedback loops

One of the feedback loops we created was missing from the above diagram was notifying NewRelic that a new deployment had occurred:

teamcity notify newrelic

We implemented this feedback loop with a customer TeamCity MetaRunner. The MetaRunner packaged up and used Curl to call NewRelic’s deployment API,  but during the development I discovered a problem using Curl; OpenSSL is a prerequisite for all build agents that will run the MetRunner.

I received a tweet from Stuart Preston asking why I used Curl and couldn’t just use PowerShell’s Invoke-RestMethod instead; the purpose of the step by step guide was really to show you how to create your own tool based MetaRunner as this feature is not talked about in any documentation and packaging up Curl was the simplest useful example I could think of. The OpenSSL dependency only became apparent after I had written the plugin and ran it on the target server, as I already had OpenSSL installed on my Dev Rig.

Based on Stuart’s feedback I’ve created a third implementation of the MetaRunner, which just runs an embedded PowerShell script, using Invoke-RestMethod to notify NewRelic:

To package up the plugin, download the source from the GitHub Repo and run Build\build-powershellscrptrunner.cmd to build the plugin zip file. Follow the instructions in the step by step guide for deploying the plugin into TeamCity.

Work Smarter, Not Harder.

@HowardvRooijen | @endjin

About the author

Howard spent 10 years as a technology consultant helping some of the UK's best known organisations work smarter, before founding endjin in 2010. He's a Microsoft Accelerator Mentor, and a Microsoft Azure MVP. You can follow him on Twitter via @HowardvRooijen