-
Notifications
You must be signed in to change notification settings - Fork 90
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adds a run-runbook step in Octopus Deploy (#703)
* Adds a run-runbook step * Change icon background color
- Loading branch information
Showing
2 changed files
with
193 additions
and
0 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,179 @@ | ||
version: "1.0" | ||
kind: step-type | ||
metadata: | ||
name: octopusdeploy-run-runbook | ||
version: 1.0.0 | ||
title: Run a runbook in Octopus Deploy | ||
isPublic: true | ||
description: Run a runbook in Octopus Deploy | ||
sources: | ||
- "https://github.com/codefresh-io/steps/tree/master/incubating/octopusdeploy-run-runbook" | ||
stage: incubating | ||
official: true | ||
categories: | ||
- deployment | ||
icon: | ||
type: svg | ||
url: "https://cdn.jsdelivr.net/gh/codefresh-io/steps/incubating/octopusdeploy-run-runbook/run_a_runbook.svg" | ||
background: "#F4F6F8" | ||
maintainers: | ||
- name: OctopusDeploy | ||
examples: | ||
- description: Basic usage of the run a runbook step | ||
workflow: | ||
run-runbook: | ||
type: octopusdeploy-run-runbook | ||
arguments: | ||
OCTOPUS_API_KEY: "${{OCTOPUS_API_KEY}}" | ||
OCTOPUS_URL: "${{OCTOPUS_URL}}" | ||
OCTOPUS_SPACE: "Spaces 1" | ||
PROJECT: "Project Name" | ||
NAME: "Runbook Name" | ||
ENVIRONMENTS: | ||
- "Development" | ||
- "Production" | ||
- description: Complex usage of the run a runbook step | ||
workflow: | ||
run-runbook: | ||
type: octopusdeploy-run-runbook | ||
arguments: | ||
OCTOPUS_API_KEY: "${{OCTOPUS_API_KEY}}" | ||
OCTOPUS_URL: "${{OCTOPUS_URL}}" | ||
OCTOPUS_SPACE: "Spaces 1" | ||
PROJECT: "Project Name" | ||
NAME: "Runbook Name" | ||
ENVIRONMENTS: | ||
- "Development" | ||
- "Production" | ||
VARIABLES: | ||
- "Label:Value" | ||
TENANTS: | ||
- "Tenant 1" | ||
TENANT_TAGS: | ||
- "Tenant tag 1" | ||
USE_GUIDED_FAILURE: "false" | ||
spec: | ||
arguments: |- | ||
{ | ||
"definitions": {}, | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"type": "object", | ||
"name": "octopusdeploy-run-runbook", | ||
"additionalProperties": false, | ||
"patterns": [], | ||
"required": ["OCTOPUS_API_KEY", "OCTOPUS_URL", "OCTOPUS_SPACE", "PROJECT", "NAME", "ENVIRONMENTS"], | ||
"properties": { | ||
"OCTOPUS_API_KEY": { | ||
"type": "string", | ||
"description": "API key for octopus deploy (required)" | ||
}, | ||
"OCTOPUS_URL": { | ||
"type": "string", | ||
"description": "URL of the octopus deploy server (required)" | ||
}, | ||
"OCTOPUS_SPACE": { | ||
"type": "string", | ||
"description": "API key for octopus deploy (required)" | ||
}, | ||
"PROJECT": { | ||
"type": "string", | ||
"description": "The name of the project associated with this release (required)" | ||
}, | ||
"NAME": { | ||
"type": "string", | ||
"description": "Name of the runbook to run (required)" | ||
}, | ||
"ENVIRONMENTS": { | ||
"type": "array", | ||
"items": { | ||
"type": "string" | ||
}, | ||
"description": "The environment names to run in (required)" | ||
}, | ||
"VARIABLES": { | ||
"type": "array", | ||
"items": { | ||
"type": "string" | ||
}, | ||
"description": "Set the value for a prompted variable in the format Label:Value (optional)" | ||
}, | ||
"TENANTS": { | ||
"type": "array", | ||
"items": { | ||
"type": "string" | ||
}, | ||
"description": "Run for these tenants (optional)" | ||
}, | ||
"TENANT_TAGS": { | ||
"type": "array", | ||
"items": { | ||
"type": "string" | ||
}, | ||
"description": "Run for tenants matching these tags (optional)" | ||
}, | ||
"USE_GUIDED_FAILURE": { | ||
"type": "string", | ||
"description": "Enable Guided failure mode (true/false/default) (optional)" | ||
} | ||
} | ||
} | ||
returns: |- | ||
{ | ||
"definitions": {}, | ||
"$schema": "http://json-schema.org/draft-07/schema#", | ||
"type": "object", | ||
"additionalProperties": true, | ||
"patterns": [], | ||
"required": [ | ||
"RUNBOOK_RUNS" | ||
], | ||
"properties": { | ||
"RUNBOOK_RUNS": { | ||
"type": "array", | ||
"description": "The list of runbook runs", | ||
"items": { | ||
"type": "object", | ||
"additionalProperties": true, | ||
"patterns": [], | ||
"required": [ | ||
"RunbookRunId", | ||
"ServerTaskId" | ||
], | ||
"properties": { | ||
"RunbookRunId": { | ||
"type": "string", | ||
"description": "The runbook run Id" | ||
}, | ||
"ServerTaskId": { | ||
"type": "string", | ||
"description": "The server task Id" | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
stepsTemplate: |- | ||
run-runbook: | ||
name: octopusdeploy-run-runbook | ||
image: octopuslabs/octopus-cli | ||
tag: latest | ||
commands: | ||
- OUTPUT=$(octopus runbook run | ||
--project "[[.Arguments.PROJECT]]" | ||
--name "[[.Arguments.NAME]]" | ||
[[- range $val := .Arguments.ENVIRONMENTS ]] --environment "[[ $val ]]" [[ end ]] | ||
[[- range $val := .Arguments.VARIABLES ]] --variable "[[ $val ]]" [[ end ]] | ||
[[- range $val := .Arguments.TENANTS ]] --tenant "[[ $val ]]" [[ end ]] | ||
[[- range $val := .Arguments.TENANT_TAGS ]] --tenant-tag "[[ $val ]]" [[ end ]] | ||
[[- if .Arguments.USE_GUIDED_FAILURE ]] --guided-failure "[[ .Arguments.USE_GUIDED_FAILURE ]]" [[ end ]] | ||
--output-format json | ||
--no-prompt) | ||
- cf_export RUNBOOK_RUNS=$OUTPUT | ||
environment: | ||
- 'OCTOPUS_URL=[[.Arguments.OCTOPUS_URL]]' | ||
- 'OCTOPUS_API_KEY=[[.Arguments.OCTOPUS_API_KEY]]' | ||
- 'OCTOPUS_SPACE=[[.Arguments.OCTOPUS_SPACE]]' | ||
delimiters: | ||
left: "[[" | ||
right: "]]" |