Skip to content

Commit

Permalink
fix(api): merge pipeline parameter and default value in workflow cont…
Browse files Browse the repository at this point in the history
…ext (#3413)
  • Loading branch information
bnjjj authored and yesnault committed Oct 9, 2018
1 parent d5f0a83 commit be05fef
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
6 changes: 3 additions & 3 deletions engine/api/workflow/process.go
Original file line number Diff line number Diff line change
Expand Up @@ -435,15 +435,15 @@ func processWorkflowNodeRun(ctx context.Context, db gorp.SqlExecutor, store cach
runPayload = sdk.ParametersMapMerge(runPayload, m1)
}
run.Payload = runPayload
run.PipelineParameters = n.Context.DefaultPipelineParameters
run.PipelineParameters = sdk.ParametersMerge(pip.Parameter, n.Context.DefaultPipelineParameters)
next()
}

run.HookEvent = h
if h != nil {
runPayload = sdk.ParametersMapMerge(runPayload, h.Payload)
run.Payload = runPayload
run.PipelineParameters = n.Context.DefaultPipelineParameters
run.PipelineParameters = sdk.ParametersMerge(pip.Parameter, n.Context.DefaultPipelineParameters)
}

run.BuildParameters = append(run.BuildParameters, sdk.Parameter{
Expand All @@ -466,7 +466,7 @@ func processWorkflowNodeRun(ctx context.Context, db gorp.SqlExecutor, store cach
}
runPayload = sdk.ParametersMapMerge(runPayload, m1)
run.Payload = runPayload
run.PipelineParameters = m.PipelineParameters
run.PipelineParameters = sdk.ParametersMerge(m.PipelineParameters, n.Context.DefaultPipelineParameters)
run.BuildParameters = append(run.BuildParameters, sdk.Parameter{
Name: "cds.triggered_by.email",
Type: sdk.StringParameter,
Expand Down
11 changes: 11 additions & 0 deletions sdk/parameter.go
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,17 @@ func variablesToParameters(prefix string, variables []Variable) []Parameter {
return res
}

// ParametersMerge merges two slices of parameters preserving all values
func ParametersMerge(src []Parameter, overwritter []Parameter) []Parameter {
params := make([]Parameter, 0, len(src)+len(overwritter))
params = append(params, src...)
for _, param := range overwritter {
ParameterAddOrSetValue(&params, param.Name, param.Type, param.Value)
}

return params
}

// ParametersMapMerge merges two maps of parameters preserving all values
func ParametersMapMerge(params map[string]string, otherParams map[string]string) map[string]string {
for k, v := range otherParams {
Expand Down

0 comments on commit be05fef

Please sign in to comment.