Skip to content

Commit 7b1dd61

Browse files
authored
fix(api): use final status for pipeline parent parameter (#6164)
1 parent 386edb1 commit 7b1dd61

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

engine/api/workflow/process_parameters.go

+12-1
Original file line numberDiff line numberDiff line change
@@ -190,10 +190,10 @@ func getParentParameters(w *sdk.WorkflowRun, nodeRuns []*sdk.WorkflowNodeRun) ([
190190
return nil, sdk.WithStack(fmt.Errorf("unable to find node %d in workflow", parentNodeRun.WorkflowNodeID))
191191
}
192192
nodeName = node.Name
193+
prefix := "workflow." + nodeName + "."
193194

194195
parentParams := make([]sdk.Parameter, 0, len(parentNodeRun.BuildParameters))
195196
for _, param := range parentNodeRun.BuildParameters {
196-
prefix := "workflow." + nodeName + "."
197197
if param.Name == "" || param.Name == "cds.semver" || param.Name == "cds.release.version" ||
198198
strings.HasPrefix(param.Name, "cds.proj") ||
199199
strings.HasPrefix(param.Name, "cds.version") || strings.HasPrefix(param.Name, "cds.run.number") ||
@@ -222,11 +222,22 @@ func getParentParameters(w *sdk.WorkflowRun, nodeRuns []*sdk.WorkflowNodeRun) ([
222222

223223
if param.Name == "payload" || strings.HasPrefix(param.Name, "cds.triggered") || strings.HasPrefix(param.Name, "cds.release") {
224224
// keep p.Name as is
225+
} else if param.Name == "cds.status" {
226+
// do not use input status value for parent param
227+
continue
225228
} else if strings.HasPrefix(param.Name, "cds.") {
226229
param.Name = strings.Replace(param.Name, "cds.", prefix, 1)
227230
}
228231
parentParams = append(parentParams, param)
229232
}
233+
234+
// inject parent final status as parameter
235+
parentParams = append(parentParams, sdk.Parameter{
236+
Name: prefix + "status",
237+
Type: sdk.StringParameter,
238+
Value: parentNodeRun.Status,
239+
})
240+
230241
params = append(params, parentParams...)
231242
}
232243
return params, nil

0 commit comments

Comments
 (0)