Skip to content

Feature Request: Support for comparison operators (<, >, <=, >=) #114

Description

@burck1

Would it be possible to add support for comparison operators? We're interested in using them in run conditions.

Example Runbook (Triggered Daily)

Step 1: Get Days Until Expiration

$exampleExpirationDate = Get-Date -Year 2025 -Month 12 -Day 1
$daysUntilExpiration = ($exampleExpirationDate - (Get-Date)).Days
Set-OctopusVariable -name "DaysUntilExpiration" -value $daysUntilExpiration

Step 2: Notify Every Day 30 Days Before Expiration

Step Template: Send Slack Message

Run Condition Proposed Options (no preference)

  • #{Octopus.Action[Get Days Until Expiration].Output.DaysUntilExpiration < 31}
  • #{Octopus.Action[Get Days Until Expiration].Output.DaysUntilExpiration | LessThan 31}
  • #{calc {Octopus.Action[Get Days Until Expiration].Output.DaysUntilExpiration} < 31}

Workaround

Although there's currently no support for comparison operators, we can exploit the calc-subtraction statement and the StartsWith filter to achieve something similar by subtracting the values and checking for a negative sign "-".

Functioning Runbook (Triggered Daily)

Project Variables

Name Value
DaysUntilExpiration Octopus.Action[Get Days Until Expiration].Output.DaysUntilExpiration
DaysUntilExpirationMinus31 #{calc {DaysUntilExpiration} - 31}
WillExpireInLessThan31Days #{DaysUntilExpirationMinus31 | StartsWith "-"}

Step 1: Get Days Until Expiration

$exampleExpirationDate = Get-Date -Year 2025 -Month 12 -Day 1
$daysUntilExpiration = ($exampleExpirationDate - (Get-Date)).Days
Set-OctopusVariable -name "DaysUntilExpiration" -value $daysUntilExpiration

Step 2: Notify Every Day 30 Days Before Expiration

Step Template: Send Slack Message

Run Condition: #{WillExpireInLessThan31Days}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions