Jenkins : OctopusDeploy Plugin

Plugin Information

View Octopus Deploy on the plugin site for more information.

Older versions of this plugin may not be safe to use. Please review the following warnings before using an older version:

Allows users to create and deploy releases with OctopusDeploy

Releases

1.9.0

Feature for supporting Octopus 2018.8 which introduced a change to Steps allowing multiple packages. Now uses 'package reference name' instead of just step name.

Contributed by Shannon Lewis

1.8.1

Bugfix - When a specified Octopus URL ended with a / the Build Summary links would be incorrectly truncated by one character.

1.8.0

Feature Enhancement - Packages can now be specified by Package Name or by Step Name.

Contributed by Cristian Uroz

1.7.0

New Feature - Supports configuring and using multiple Octopus servers. Configure in the Jenkins global configuration, and use per-project in the Deployment or Release post build step. Found under Advanced Options.

Contributed by Wassim Ben Ayed

1.6.0

New Feature - Support the ability to specify a channel while creating a release.

1.5.0

New Feature - The ability to specify a tenant when deploying in multi-tenant mode.
Contributed by Kees van Ginkel

1.4.0

New Feature - set variables when executing a deployment. 
Contributed by Stephen Rufle

1.3.1

Bugfix - Release notes from SCM now properly include changeset from current build.

1.3.0

Initial release on Jenkins-CI

OctopusDeploy Plugin

Connecting OctopusDeploy to the Jenkins workflow. Integration with OctopusDeploy is achieved via the REST API, not the Octo.exe tool.

Compatibility

Built initially with, and compatible with OctopusDeploy 2.6.
Tested and compatible with OctopusDeploy 3.0, 3.1, 3.2, and 3.4.

Main Components

Post-build step - Create Release

Creates a new release entry for a given project. Optionally also deploys the newly created release to a given environment. This component will only run if the build has been successful up until the point the post-build step is invoked.

Post-build step - Execute Deployment

Sends a release to a given environment. This component will only run if the build has been successful up until the point the post-build step is invoked.

Features

REST API Integration

This plugin implements part of the REST API for OctopusDeploy in order to retrieve data and execute commands on the server. It makes use of an API Key which is configured in the Global Settings Jenkins configuration page. This API Key is used for all interactions with OctopusDeploy.

Environment Variable Support

Environment variables can be used in many fields in the Release and Deployment components of this plugin. Any variable, written as

${VARIABLE_NAME}

will get replaced by that variable's value. If there is no value set for that variable, the token is not replaced.

Custom Release Notes

The Release component allows Release Notes to be gathered from SCM, collecting commit messages from the current build all the way back to the last successful build, or it can load in Release Notes from a file. There is also an option to provide a link back to the job run that created the release in the Release Notes, allowing easy navigation between Jenkins jobs and OctopusDeploy Releases.

Each component provides a link to the Release or Deployment that it created. These links are provided in the console output of the job as well as showing up as a build badge, and in the Build Summary.

Wait-for-Deployment

The Deployment component can optionally wait for the completion of the Deployment, and record the status. If the status returns as failed, the Jenkins job will be marked as a failure.

Autocomplete

Some entry fields, like Project and Environment support auto-completion, pulling a list of names to choose from from the OctopusDeploy server.

Octopus variables

As of 1.4.0, this plugin can set Octopus variables for use in deployment.

Multi tenant support

As of 1.5.0, this plugin can submit a Tenant to the deployment step for use in Octopus' multi-tenant mode.

Creating release on specific Channels

As of 1.6.0, this plugin can create releases on specific Channels as defined by users.