Spinnaker Pipeline SpEL Expressions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Overview

The Spinnaker pipeline expression language is based on Spring Expression Language (SpEL).

Accessing Pipeline Element State

A Tag set by a Trigger

The tag set by a trigger can be accessed with the following expression:

- image: "something/something-else:${trigger['tag']}"

The Judgment Value set by a Manual Judgment Stage

The value selected by a specific Manual Judgment option can be accessed by subsequent stages with the following expression:

${execution.stages.?[name == '<stage-name>' ][0].context.judgmentInput}

The expression can be used in the "Conditional on Expression" clause of subsequent stages as follows:

${execution.stages.?[name == '<stage-name>' ][0].context.judgmentInput == '<option-value>'}

where stage-name should be replaced with the actual name of the Manual Judgment stage and <option-value> with the actual option value using the same capitalization.

An alternative to get the selected option value is to use the ${#judgment() function. Did not manage to make it work, more experimentation is necessary. For more details see:

https://spinnaker.io/docs/reference/pipeline/expressions/#judgmentstring
${#judgment("<stage-name>")}

Displaying Pipeline State at Runtime

Conditional Expressions

https://spinnaker.io/docs/reference/pipeline/expressions/#comparisons
 ${ execution.stages.?[ name == 'Rollback Decision' ][0].judgementInput == 'Rollback' }