diff --git a/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/model/StageContext.java b/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/model/StageContext.java index 8b23190df5..5ad9972532 100644 --- a/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/model/StageContext.java +++ b/orca-core/src/main/groovy/com/netflix/spinnaker/orca/pipeline/model/StageContext.java @@ -19,7 +19,7 @@ import com.google.common.collect.ForwardingMap; import javax.annotation.Nullable; -import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -39,6 +39,15 @@ public StageContext(Stage stage) { return delegate; } + private Map getTrigger() { + Execution execution = stage.getExecution(); + if (execution instanceof Pipeline) { + return ((Pipeline) execution).getTrigger(); + } else { + return Collections.emptyMap(); + } + } + @Override public Object get(@Nullable Object key) { if (delegate().containsKey(key)) { return super.get(key); @@ -53,7 +62,7 @@ public StageContext(Stage stage) { Optional .ofNullable(stage.getExecution()) .map(execution -> execution.getContext().get(key)) - .orElse(null) + .orElse(getTrigger().get(key)) ); } } @@ -74,6 +83,11 @@ public List getAll(Object key) { result.add(0, delegate.get(key)); } + Map trigger = getTrigger(); + if (trigger.containsKey(key)) { + result.add(key); + } + return result; } }