@@ -298,55 +298,42 @@ func ApplyWorkspaces(p *v1.PipelineSpec, pr *v1.PipelineRun) *v1.PipelineSpec {
298298 return ApplyReplacements (p , replacements , map [string ][]string {}, map [string ]map [string ]string {})
299299}
300300
301- // ApplyReplacements replaces placeholders for declared parameters with the specified replacements.
302- func ApplyReplacements ( p * v1.PipelineSpec , replacements map [string ]string , arrayReplacements map [ string ][] string , objectReplacements map [ string ] map [ string ] string ) * v1. PipelineSpec {
303- p = p . DeepCopy ()
304-
305- for i := range p . Tasks {
306- p . Tasks [i ].Params = p . Tasks [i ].Params .ReplaceVariables (replacements , arrayReplacements , objectReplacements )
307- if p . Tasks [i ].IsMatrixed () {
308- p . Tasks [i ].Matrix .Params = p . Tasks [i ].Matrix .Params .ReplaceVariables (replacements , arrayReplacements , nil )
309- for j := range p . Tasks [i ].Matrix .Include {
310- p . Tasks [i ].Matrix .Include [j ].Params = p . Tasks [i ].Matrix .Include [j ].Params .ReplaceVariables (replacements , nil , nil )
301+ // replaceVariablesInPipelineTasks handles variable replacement for a slice of PipelineTasks in-place
302+ func replaceVariablesInPipelineTasks ( tasks [] v1.PipelineTask , replacements map [string ]string ,
303+ arrayReplacements map [ string ][] string , objectReplacements map [ string ] map [ string ] string ) {
304+
305+ for i := range tasks {
306+ tasks [i ].Params = tasks [i ].Params .ReplaceVariables (replacements , arrayReplacements , objectReplacements )
307+ if tasks [i ].IsMatrixed () {
308+ tasks [i ].Matrix .Params = tasks [i ].Matrix .Params .ReplaceVariables (replacements , arrayReplacements , nil )
309+ for j := range tasks [i ].Matrix .Include {
310+ tasks [i ].Matrix .Include [j ].Params = tasks [i ].Matrix .Include [j ].Params .ReplaceVariables (replacements , nil , nil )
311311 }
312312 } else {
313- p . Tasks [i ].DisplayName = substitution .ApplyReplacements (p . Tasks [i ].DisplayName , replacements )
313+ tasks [i ].DisplayName = substitution .ApplyReplacements (tasks [i ].DisplayName , replacements )
314314 }
315- for j := range p . Tasks [i ].Workspaces {
316- p . Tasks [i ].Workspaces [j ].SubPath = substitution .ApplyReplacements (p . Tasks [i ].Workspaces [j ].SubPath , replacements )
315+ for j := range tasks [i ].Workspaces {
316+ tasks [i ].Workspaces [j ].SubPath = substitution .ApplyReplacements (tasks [i ].Workspaces [j ].SubPath , replacements )
317317 }
318- p . Tasks [i ].When = p . Tasks [i ].When .ReplaceVariables (replacements , arrayReplacements )
319- if p . Tasks [i ].TaskRef != nil {
320- if p . Tasks [i ].TaskRef .Params != nil {
321- p . Tasks [i ].TaskRef .Params = p . Tasks [i ].TaskRef .Params .ReplaceVariables (replacements , arrayReplacements , objectReplacements )
318+ tasks [i ].When = tasks [i ].When .ReplaceVariables (replacements , arrayReplacements )
319+ if tasks [i ].TaskRef != nil {
320+ if tasks [i ].TaskRef .Params != nil {
321+ tasks [i ].TaskRef .Params = tasks [i ].TaskRef .Params .ReplaceVariables (replacements , arrayReplacements , objectReplacements )
322322 }
323- p . Tasks [i ].TaskRef .Name = substitution .ApplyReplacements (p . Tasks [i ].TaskRef .Name , replacements )
323+ tasks [i ].TaskRef .Name = substitution .ApplyReplacements (tasks [i ].TaskRef .Name , replacements )
324324 }
325- p .Tasks [i ] = propagateParams (p .Tasks [i ], replacements , arrayReplacements , objectReplacements )
325+ tasks [i ].OnError = v1 .PipelineTaskOnErrorType (substitution .ApplyReplacements (string (tasks [i ].OnError ), replacements ))
326+ tasks [i ] = propagateParams (tasks [i ], replacements , arrayReplacements , objectReplacements )
326327 }
328+ }
327329
328- for i := range p .Finally {
329- p .Finally [i ].Params = p .Finally [i ].Params .ReplaceVariables (replacements , arrayReplacements , objectReplacements )
330- if p .Finally [i ].IsMatrixed () {
331- p .Finally [i ].Matrix .Params = p .Finally [i ].Matrix .Params .ReplaceVariables (replacements , arrayReplacements , nil )
332- for j := range p .Finally [i ].Matrix .Include {
333- p .Finally [i ].Matrix .Include [j ].Params = p .Finally [i ].Matrix .Include [j ].Params .ReplaceVariables (replacements , nil , nil )
334- }
335- } else {
336- p .Finally [i ].DisplayName = substitution .ApplyReplacements (p .Finally [i ].DisplayName , replacements )
337- }
338- for j := range p .Finally [i ].Workspaces {
339- p .Finally [i ].Workspaces [j ].SubPath = substitution .ApplyReplacements (p .Finally [i ].Workspaces [j ].SubPath , replacements )
340- }
341- p .Finally [i ].When = p .Finally [i ].When .ReplaceVariables (replacements , arrayReplacements )
342- if p .Finally [i ].TaskRef != nil {
343- if p .Finally [i ].TaskRef .Params != nil {
344- p .Finally [i ].TaskRef .Params = p .Finally [i ].TaskRef .Params .ReplaceVariables (replacements , arrayReplacements , objectReplacements )
345- }
346- p .Finally [i ].TaskRef .Name = substitution .ApplyReplacements (p .Finally [i ].TaskRef .Name , replacements )
347- }
348- p .Finally [i ] = propagateParams (p .Finally [i ], replacements , arrayReplacements , objectReplacements )
349- }
330+ // ApplyReplacements replaces placeholders for declared parameters with the specified replacements.
331+ func ApplyReplacements (p * v1.PipelineSpec , replacements map [string ]string , arrayReplacements map [string ][]string , objectReplacements map [string ]map [string ]string ) * v1.PipelineSpec {
332+ p = p .DeepCopy ()
333+
334+ // Replace variables in Tasks and Finally tasks
335+ replaceVariablesInPipelineTasks (p .Tasks , replacements , arrayReplacements , objectReplacements )
336+ replaceVariablesInPipelineTasks (p .Finally , replacements , arrayReplacements , objectReplacements )
350337
351338 return p
352339}
0 commit comments