diff --git a/pkg/apis/pipeline/v1/merge.go b/pkg/apis/pipeline/v1/merge.go index df413a5456a..b916d8caeb5 100644 --- a/pkg/apis/pipeline/v1/merge.go +++ b/pkg/apis/pipeline/v1/merge.go @@ -65,7 +65,18 @@ func MergeStepsWithStepTemplate(template *StepTemplate, steps []Step) ([]Step, e amendConflictingContainerFields(&merged, s) // Pass through original step Script, for later conversion. - newStep := Step{Script: s.Script, OnError: s.OnError, Timeout: s.Timeout, StdoutConfig: s.StdoutConfig, StderrConfig: s.StderrConfig, Results: s.Results, Params: s.Params, Ref: s.Ref, When: s.When} + newStep := Step{ + Script: s.Script, + OnError: s.OnError, + Timeout: s.Timeout, + StdoutConfig: s.StdoutConfig, + StderrConfig: s.StderrConfig, + Results: s.Results, + Params: s.Params, + Ref: s.Ref, + When: s.When, + Workspaces: s.Workspaces, + } newStep.SetContainerFields(merged) steps[i] = newStep } diff --git a/pkg/apis/pipeline/v1/merge_test.go b/pkg/apis/pipeline/v1/merge_test.go index ab3d598742a..07c24e0ab5a 100644 --- a/pkg/apis/pipeline/v1/merge_test.go +++ b/pkg/apis/pipeline/v1/merge_test.go @@ -269,6 +269,48 @@ func TestMergeStepsWithStepTemplate(t *testing.T) { Image: "some-image", When: v1.StepWhenExpressions{{Input: "foo", Operator: selection.In, Values: []string{"foo", "bar"}}}, }}, + }, { + name: "isolated workspaces", + template: &v1.StepTemplate{ + Env: []corev1.EnvVar{{ + Name: "KEEP_THIS", + Value: "A_VALUE", + }}, + }, + steps: []v1.Step{{ + Image: "some-image", + Workspaces: []v1.WorkspaceUsage{{ + Name: "foo", + MountPath: "/foo/bar", + }}, + }, { + Image: "some-image", + Workspaces: []v1.WorkspaceUsage{{ + Name: "bar", + MountPath: "/bar/baz", + }}, + }}, + expected: []v1.Step{{ + Image: "some-image", + Env: []corev1.EnvVar{{ + Name: "KEEP_THIS", + Value: "A_VALUE", + }}, + Workspaces: []v1.WorkspaceUsage{{ + Name: "foo", + MountPath: "/foo/bar", + }}, + }, { + Image: "some-image", + Env: []corev1.EnvVar{{ + Name: "KEEP_THIS", + Value: "A_VALUE", + }}, + Workspaces: []v1.WorkspaceUsage{{ + Name: "bar", + MountPath: "/bar/baz", + }}, + }}, }} { t.Run(tc.name, func(t *testing.T) { result, err := v1.MergeStepsWithStepTemplate(tc.template, tc.steps)