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.
When you click the Prompt link, you'll be able to configure details for the prompt:
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:
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:
And sensitive prompted variables will be masked just like other 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:
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.
Audit log filtering
Audit logs can now be filtered by person, project or date range:
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:
With variables like this:
And this will still work:
And so will this:
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:
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:
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!