Cowboy in the desert.

What's new in Octopus 2.3

March 9, 2014

We just shipped a pre-release of Octopus Deploy 2.3. Since 2.0 shipped, we've been getting into a nice groove, releasing new builds every couple of weeks. If you look at our release history, you can see that our last release was just two weeks ago, Octopus 2.2.

Below are the highlights of 2.3. I think you'll agree that we've been pretty busy in that short period of time!

Prompting for variables at deployment time

Sometimes you need to provide additional information to Octopus when you queue a deployment. Prompted variables allow you to define a variable, along with a label and help text, whose value will be provided by the user when creating the deployment.

Adding a prompted variable

When you click the Prompt link, you'll be able to configure details for the prompt:

Configuring the prompt settings

At deployment time, the prompt will appear on the create deployment page. If you provided a default value for the variable, this will be the default value in the text box:

Prompt values appear at deployment creation time

Note that prompted variables can be scoped like other variables; so you could use fixed values for one environment, and a prompted value for production deployments. Prompted variables can also be marked sensitive, in which case a password box will appear.

Prompted variable can be used in scripts and configuration just like any other variable:

Referencing prompted variables

And sensitive prompted variables will be masked just like other variables.

Task output when using prompted variables

Deploy to specific machines

Sometimes you might add a new machine to an environment, and you need to redeploy a release to that machine, but don't want to affect the other machines in the environment. In Octopus 2.3 you can now select specific machines to deploy to:

Deploying to specific machines

Task output "Interesting" mode

When a task is running, you had to click "Expand All" continuously to keep seeing output as new log nodes were added (unlike a build server that logs output sequentially, Octopus does a lot of things in parallel, so the log output is hierarchical and multiple nodes produce log messages at the same time).

We've now made the Expand All/Errors/None links "sticky" - if you expand all, and new nodes are added, they'll be automatically expanded too. We've also created a new mode, called Interesting mode, which automatically expands nodes that are either running or have failed. This is the default mode, and it makes for a nice experience - as soon as you view task output, you automatically see the things that are probably of most interest to you.

Interesting mode

Audit log filtering

Audit logs can now be filtered by person, project or date range:

Filtering the audit log

Custom expressions in package ID's and feeds

This one is easier to explain with pictures. You can now define steps in your deployment process like this:

Defining a step with bound package details

With variables like this:

Variables for package binding

And this will still work:

Creating a release

And so will this:

Viewing the release

This makes certain workflows like using different feeds for different environments much easier, but I'll blog about that later.

Why is my deployment queued?

Sometimes when you execute a deployment, your deployment may stay in the "Queued" state. The reason is usually because another deployment is currently running for that environment/project combination, but it can be hard to work out why.

To help, we now show a list of tasks that the current task is waiting for before it can be executed:

Stuck in the queue

Template-based file transformations

Nick already blogged about this feature. I think it's pretty cool!

The Cancelator

In previous versions of Octopus, the Cancel button on a running task was more of a suggestion than a command. For example, let's say I had this script:

Write-Output "Sleeping for 1 second..."
Start-Sleep 1000
Write-Output "Done!"

Oops! Start-Sleep assumes I mean seconds, by default, not milliseconds. Now I'll be waiting forever for my deployment to complete. Argh!

In prior versions, clicking Cancel on the task wouldn't help - Tentacle would still wait for the script to complete before cancelling the rest of the actions. But in Octopus 2.3, we'll now terminate the running PowerShell process:

Cancel a PowerShell script

This is a much nicer experience because it means cancel now actually works when you have a hanging task. On the other hand, you'll have to be a little more careful when using it!

Better task output and dashboard performance

The dashboard and task output page got a lot of attention. Previously, the task output would freeze up with a few hundred lines of output, and the dashboard would freeze intermittently when you had many projects/environments. Both of these issues have now been addressed and they should feel much snappier!

We also addressed some other known bugs and other performance issues this release. Check it out and let me know if you hit any problems. Happy deployments!

Tagged with: New Releases