The deployment process is the steps the Octopus Server orchestrates to deploy your software.
You define your deployment processes by creating projects and then adding steps and variables to the project. Each step contains a specific action (or set of actions) that is executed as part of the deployment process each time your software is deployed.
Octopus comes with over 300+ built-in and community-contributed steps templates for deploying just about anything.
After the initial setup, your deployment process shouldn't change between deployments even though the software being deployed will change as part of the development process, however, you can continue to add and edit steps as your process evolves or your infrastructure changes.
A Hello World deployment process
For this example process, we'll use Octopus Deploy to create a simple process with only one step that runs a script on a deployment target. The process uses a Test environment with one Deployment Target that has the target role server.
If you need a refresher on environments, deployment targets, or how to configure them, review the infrastructure docs.
- From the Octopus Web portal, select Projects from the main navigation, and click ADD PROJECT.
- Name the project, for instance, Hello World, and click Save.
- From your new project's overview page, click DEFINE YOUR DEPLOYMENT PROCESS.
- Click ADD STEP, and then select the Run a Script step.
- Give the step a name, for instance, Say Hello.
- For the execution plan, leave the selection at the default Deployment targets and select the target role server.
- For the script section, expand the Script content section by clicking on it. Paste the following PowerShell script into the text box and click Save:
Write-Host "Hello, World!"
- From the project's overview page, click CREATE RELEASE, and then click Save.
- Click DEPLOY TO TEST, then click DEPLOY.
This will deploy the release. In the task summary, you'll see the release was deployed to your Test environment, and the step Hello world ran on the deployment target, in this case TWeb01.
This is an example of a very simple process, the following sections go into more detail about each part of the process.
Before you can define how your software is deployed, you must create a project for the deployment process. Projects contain the deployment steps and configuration variables that define how your software is deployed.
Learn more about managing projects.
Lifecycles control how your software is promoted through your environments and which projects are associated with which environments.
Learn more about Lifecycles.
Steps contain the actions your deployment process will execute each time your software is deployed.
Deployment processes can have one or many steps, steps can run in sequence or parallel, in addition to a variety of deployment steps, you can include manual intervention steps to get sign off before deployment, email notification steps to keep everybody informed about your process, or even skip steps under different circumstances.
Learn more about steps.
When you deploy your software, it needs to be configured for the specific environments it will be deployed to. Configuration files let you define custom installation directories, database connections, and other settings that make it possible to deploy your software.
Learn more about configuration features.
Octopus supports variables to make it easier to define application settings for your deployment processes without the need to hardcode them. For instance, you might use different connection strings for apps deployed to Test and Production. Variables let you define these settings and then refer to them by the variable name throughout the deployment process, meaning you don't have to manually change them between deployments, or even give them much thought after the variables and deployment process have been defined.
Learn more about variables.
You can specify run conditions on the steps that you define to give you greater control over the deployment process.
Learn more about conditions.
In Octopus you create releases to be deployed. Projects have multiple releases and releases can be deployed multiple times to across different infrastructure.
Learn more about releases.
Working with the Octopus API
Octopus Deploy is built API-first, which means everything you can do through the Octopus UI can be done with the API. In the API we model the deployment process the same way, starting at the Project:
- Deployment process
We have provided lots of helpful functions for building your deployment process in the .NET SDK, or you can use the raw HTTP API if that suits your needs better.
Learn about using the Octopus REST API.
Record the HTTP requests made by the Octopus UI to see how we build your deployment processes using the Octopus API. You can do this in the Chrome developer tools, or using a tool like Fiddler.
In this section
The following topics are explained further in this section:
- Configuration features
- Execution containers for workers
Need support? We're here to help.