Skip to content

Conversation

@mcasperson
Copy link
Contributor

@mcasperson mcasperson commented Oct 13, 2025

Step template guidelines

  • Is the template a minor variation on an existing one? If so, please consider improving the existing template if possible.
  • Is the name of the template consistent with the examples already in the library, in style ("Noun - Verb"), layout and casing?
  • Are all parameters in the template consistent with the examples here, including help text documented with Markdown?
  • Is the description of the template complete, with correct Markdown?
  • Is the .json filename consistent with the name of the template?
  • Do scripts in the template validate required arguments and fail by returning a non-zero exit code when things go wrong?
  • Do scripts in the template produce worthwhile status messages as they execute?
  • Are you happy to contribute your template under the terms of the license? If you produced the template while working for your employer please obtain written permission from them before submitting it here.
  • Are the default values of parameters validly applicable in other user's environments? Don't use the default values as examples if the user will have to change them
  • For an example of how to test your step template script body before submitting a PR take a look at this gist

Before submitting your PR, please delete everything above the line below.


Background

This step allows a deployment process to check that targets with the defined tag are present in the Octopus space.

Pre-requisites

  • Id should be a GUID that is not 00000000-0000-0000-0000-000000000000
    • NOTE If you are modifying an existing step template, please make sure that you do not modify the Id property (updating the Id will break the Library sync functionality in Octopus).
  • Version should be incremented, otherwise the integration with Octopus won't update the step template correctly
  • Parameter names should not start with $
  • Step template parameter names (the ones declared in the JSON, not the script body) should be prefixed with a namespace so that they are less likely to clash with other user-defined variables in Octopus (see this issue). For example, use an abbreviated name of the step template or the category of the step template).
  • LastModifiedBy field must be present, and (optionally) updated with the correct author
  • The best practices documented here have been applied
  • If a new Category has been created:
    • An image with the name {categoryname}.png must be present under the step-templates/logos folder
    • The switch in the humanize function in gulpfile.babel.js must have a case statement corresponding to it

Fixes # . If there is an open issue that this PR fixes add it here, otherwise just remove this line

@mcasperson mcasperson requested a review from Copilot October 13, 2025 00:54
@github-actions
Copy link

Start Hyponome locally

docker pull ghcr.io/hnrkndrssn/hyponome:main
docker run --rm -p 8000:8080 -it ghcr.io/hnrkndrssn/hyponome:main

Review in Hyponome

@mcasperson mcasperson enabled auto-merge (squash) October 13, 2025 00:54
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds a new step template that allows deployment processes to check for the presence of targets with specified tags in an Octopus space, failing the deployment with a custom message if no matching targets are found.

  • Introduces a PowerShell-based step template for target validation
  • Validates target availability before deployment execution
  • Provides configurable error messaging for failed validations

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@mcasperson mcasperson requested a review from Copilot October 13, 2025 01:07
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 3 comments.


Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@mcasperson mcasperson requested a review from Copilot October 13, 2025 01:10
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

step-templates/octopus-check-roles.json:1

  • The API endpoint uses 'roles=$role' parameter but the template description and labels refer to 'tags'. In Octopus Deploy, roles and tags are different concepts. If checking for tags, the API parameter should be 'machineNames' or similar tag-based filtering.
{

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Copy link

@robpearson robpearson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice simple script. 👌

@mcasperson mcasperson merged commit 206b28b into master Oct 13, 2025
2 checks passed
@mcasperson mcasperson deleted the mattc/role-check branch October 13, 2025 05:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants