diff --git a/controllers/release/adapter.go b/controllers/release/adapter.go index 6d5cfa72..dd361919 100644 --- a/controllers/release/adapter.go +++ b/controllers/release/adapter.go @@ -345,7 +345,7 @@ func (a *adapter) createManagedPipelineRun(resources *loader.ProcessingResources WithServiceAccount(resources.ReleasePlanAdmission.Spec.ServiceAccount). WithTimeout(resources.ReleasePlanAdmission.Spec.PipelineRef.Timeout). WithPipelineRef(resources.ReleasePlanAdmission.Spec.PipelineRef.ToTektonPipelineRef()). - WithTaskGitRevisionParameter(resources.ReleasePlanAdmission.Spec.PipelineRef). + WithTaskGitPipelineParameters(resources.ReleasePlanAdmission.Spec.PipelineRef). WithEnterpriseContractConfigMap(resources.EnterpriseContractConfigMap). WithEnterpriseContractPolicy(resources.EnterpriseContractPolicy). AsPipelineRun() diff --git a/controllers/release/adapter_test.go b/controllers/release/adapter_test.go index 43087e3c..0e093a0e 100644 --- a/controllers/release/adapter_test.go +++ b/controllers/release/adapter_test.go @@ -882,6 +882,18 @@ var _ = Describe("Release adapter", Ordered, func() { Expect(pipelineUrl).To(Equal(releasePlanAdmission.Spec.PipelineRef.Params[0].Value)) }) + It("contains a parameter with the taskGitUrl", func() { + Expect(pipelineRun.Spec.Params).Should(ContainElement(HaveField("Name", "taskGitUrl"))) + var url string + resolverParams := pipelineRun.Spec.PipelineRef.ResolverRef.Params + for i := range resolverParams { + if resolverParams[i].Name == "url" { + url = resolverParams[i].Value.StringVal + } + } + Expect(pipelineRun.Spec.Params).Should(ContainElement(HaveField("Value.StringVal", url))) + }) + It("contains a parameter with the taskGitRevision", func() { Expect(pipelineRun.Spec.Params).Should(ContainElement(HaveField("Name", "taskGitRevision"))) var revision string diff --git a/tekton/pipeline_run.go b/tekton/pipeline_run.go index 0f79565f..d754c3ff 100644 --- a/tekton/pipeline_run.go +++ b/tekton/pipeline_run.go @@ -164,11 +164,17 @@ func (r *ReleasePipelineRun) WithServiceAccount(serviceAccount string) *ReleaseP return r } -// WithTaskGitRevisionParameter adds the taskGitRevision parameter to the managed Release PipelineRun with the value of the revision -// from the pipelineRef if the pipelineRef is for a git resolver. -func (r *ReleasePipelineRun) WithTaskGitRevisionParameter(pipelineRef *utils.PipelineRef) *ReleasePipelineRun { +// WithTaskGitPipelineParameters adds the taskGitUrl and taskGitRevision parameters to the managed Release PipelineRun with +// the value of the url and revision from the pipelineRef if the pipelineRef is for a git resolver. +func (r *ReleasePipelineRun) WithTaskGitPipelineParameters(pipelineRef *utils.PipelineRef) *ReleasePipelineRun { if pipelineRef.Resolver == "git" { for _, p := range pipelineRef.Params { + if p.Name == "url" { + r.WithExtraParam("taskGitUrl", tektonv1.ParamValue{ + Type: tektonv1.ParamTypeString, + StringVal: p.Value, + }) + } if p.Name == "revision" { r.WithExtraParam("taskGitRevision", tektonv1.ParamValue{ Type: tektonv1.ParamTypeString, diff --git a/tekton/pipeline_run_test.go b/tekton/pipeline_run_test.go index 67b28973..0f2c193c 100644 --- a/tekton/pipeline_run_test.go +++ b/tekton/pipeline_run_test.go @@ -212,32 +212,42 @@ var _ = Describe("PipelineRun", func() { Expect(releasePipelineRun.Spec.TaskRunTemplate.ServiceAccountName).To(Equal(serviceAccountName)) }) - It("can add the taskGitRevision parameter to the PipelineRun object when using a git resolver", func() { + It("can add the taskGit pipeline parameters to the PipelineRun object when using a git resolver", func() { pipelineRef := &tektonutils.PipelineRef{ Resolver: "git", Params: []tektonutils.Param{ + { + Name: "url", + Value: "my-url", + }, { Name: "revision", Value: "my-revision", }, }, } - releasePipelineRun.WithTaskGitRevisionParameter(pipelineRef) - Expect(releasePipelineRun.Spec.Params[0].Name).To(Equal("taskGitRevision")) - Expect(releasePipelineRun.Spec.Params[0].Value.StringVal).To(Equal("my-revision")) + releasePipelineRun.WithTaskGitPipelineParameters(pipelineRef) + Expect(releasePipelineRun.Spec.Params[0].Name).To(Equal("taskGitUrl")) + Expect(releasePipelineRun.Spec.Params[0].Value.StringVal).To(Equal("my-url")) + Expect(releasePipelineRun.Spec.Params[1].Name).To(Equal("taskGitRevision")) + Expect(releasePipelineRun.Spec.Params[1].Value.StringVal).To(Equal("my-revision")) }) - It("does not add the taskGitRevision parameter to the PipelineRun object when using a bundles resolver", func() { + It("does not add the taskGit pipeline parameters to the PipelineRun object when using a bundles resolver", func() { pipelineRef := &tektonutils.PipelineRef{ Resolver: "bundles", Params: []tektonutils.Param{ + { + Name: "url", + Value: "my-url", + }, { Name: "revision", Value: "my-revision", }, }, } - releasePipelineRun.WithTaskGitRevisionParameter(pipelineRef) + releasePipelineRun.WithTaskGitPipelineParameters(pipelineRef) Expect(len(releasePipelineRun.Spec.Params)).To(Equal(0)) })