Skip to content

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

@burck1

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}

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