How to Find Build Runner Usage in TeamCity

Today we needed a way to determine build runner usage across all TeamCity projects. We were using a custom build runner – Node.js NPM – in several projects in TeamCity, but we didn’t know exactly which projects. And we wanted to upgrade the version of Node.js on our build server.

The Node.js NPM build runner allows you to integrate Node.js into your build steps. But, unless you’ve configured the related build steps to use a specific Node version, it will use whichever version that is currently installed on the build agent. So if we didn’t pay attention, upgrading Node.js had the potential to break some of our existing build configurations.

Searching the TeamCity UI

Initially, I thought the TeamCity UI might reveal which projects were using this build runner. In the Administration section, I found the Usage Statistics node (see Figure 1.) While this told me Continue Reading →

Practical Octopus Deploy – Using OctoPack

Creating Deployment Packages Using OctoPack

In the previous post, we took a look at DbUp – a tool to package and deploy database change scripts. In this post, we are going to check out another tool, OctoPack. We’ll be using OctoPack to help us create and publish packages in a format that Octopus Deploy can easily consume. This is the seventh post in a series about using Octopus Deploy.

An Octopus's Garden

An Octopus Garden

An Octopus’ Garden – and Some Turtles

Octopus Deploy has many capabilities. But once I got into to it, eventually I found that three of the shiniest objects in the world of Octopus are:

  1. NuGet packages,
  2. PowerShell scripts,
  3. and in what perhaps is simply another case of Continue Reading →

Practical Octopus Deploy – Using DbUp

Using DbUp to Package Database Change Scripts

In the previous post, we took a look at some popular strategies for updating database schemas, including using database change scripts. In this post, we’ll focus on using DbUp, an open-source tool, to package and deploy change scripts. This is the sixth post in a series about using Octopus Deploy.

Database

Using DbUp, In a Nutshell

The project page for DbUp on nuget.org simply states: Continue Reading →

Practical Octopus Deploy – Database Change Scripts

Making Schema Modifications Using Database Change Scripts

In this post, we’ll examine some popular strategies for updating database schemas, including using database change scripts. We’ll also see how one of these strategies can be integrated into a deployment process that uses Octopus. This is the fifth post in a multi-part series about using Octopus Deploy.

Databases are a key part of many applications. Naturally, releasing a new version often requires a schema change. One way we can accomplish this is to use change scripts, so we’re going to look at how this works. We will see how to name and organize change scripts so they are deployed in the proper order. And we’ll also briefly touch on how Octopus supports a change script strategy.

Change Ahead exit sign

Ch-Ch-Ch-Changes

When our Octopus Deploy pilot started, one of my first Continue Reading →

Practical Octopus Deploy – Projects and Project Groups

Understanding Octopus Deploy Projects

In our last post, we explored lifecycles in Octopus Deploy. In this post, we’ll examine Octopus Deploy projects and project groups. We’ll see how projects help to define your deployments. We’ll look at how project groups help organize your projects, and also how they play a role in providing security. And we’ll also see how an Octopus project uses a lifecycle to control a project’s deployment model. This is the fourth post in a multi-part series about using Octopus Deploy.

Project as jigsaw puzzle
Figure 1: Project as puzzle

A Book of Recipes

Ultimately, the point of using a tool like Octopus is Continue Reading →