Skip to content
This repository has been archived by the owner on Nov 11, 2024. It is now read-only.

Commit

Permalink
Disable commit status task for enterprise repository (#261)
Browse files Browse the repository at this point in the history
* remove commit status task for enterprise repository

* use const for status task name
  • Loading branch information
chetan-rns authored Jul 22, 2021
1 parent 6f0cc07 commit 1209d50
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 10 deletions.
30 changes: 27 additions & 3 deletions pkg/pipelines/bootstrap.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import (
"github.com/redhat-developer/kam/pkg/pipelines/tasks"
"github.com/redhat-developer/kam/pkg/pipelines/triggers"
"github.com/redhat-developer/kam/pkg/pipelines/yaml"
pipelinev1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1"
)

const (
Expand Down Expand Up @@ -547,9 +548,13 @@ func createCICDResources(fs afero.Fs, repo scm.Repository, pipelineConfig *confi
return nil, otherOutputs, err
}
outputs[gitopsTasksPath] = tasks.CreateDeployFromSourceTask(cicdNamespace, script)
outputs[commitStatusTaskPath] = tasks.CreateCommitStatusTask(cicdNamespace)
outputs[ciPipelinesPath] = pipelines.CreateCIPipeline(meta.NamespacedName(cicdNamespace, "ci-dryrun-from-push-pipeline"), cicdNamespace)
outputs[appCiPipelinesPath] = pipelines.CreateAppCIPipeline(meta.NamespacedName(cicdNamespace, "app-ci-pipeline"))
// currently, the commit status task doesn't support enterprise repository
// enable it by default once the status task supports enterprise repository
if o.PrivateRepoDriver == "" {
outputs[commitStatusTaskPath] = tasks.CreateCommitStatusTask(cicdNamespace)
}
outputs[ciPipelinesPath] = removeCommitStatus(pipelines.CreateCIPipeline(meta.NamespacedName(cicdNamespace, "ci-dryrun-from-push-pipeline"), cicdNamespace), o.PrivateRepoDriver)
outputs[appCiPipelinesPath] = removeCommitStatus(pipelines.CreateAppCIPipeline(meta.NamespacedName(cicdNamespace, "app-ci-pipeline")), o.PrivateRepoDriver)
pushBinding, pushBindingName := repo.CreatePushBinding(cicdNamespace)
outputs[filepath.ToSlash(filepath.Join("05-bindings", pushBindingName+".yaml"))] = pushBinding
outputs[pushTemplatePath] = triggers.CreateCIDryRunTemplate(cicdNamespace, saName)
Expand Down Expand Up @@ -628,3 +633,22 @@ func generateSecrets(outputs res.Resources, otherOutputs res.Resources, sa *core
outputs[serviceAccountPath] = roles.AddSecretToSA(sa, basicAuthSecret.Name)
return nil
}

// remove the commit status task and it's dependency
func removeCommitStatus(pipeline *pipelinev1.Pipeline, driver string) *pipelinev1.Pipeline {
if driver == "" {
return pipeline
}
pipeline.Spec.Finally = nil
tasks := []pipelinev1.PipelineTask{}
for _, task := range pipeline.Spec.Tasks {
if len(task.RunAfter) > 0 && task.RunAfter[0] == pipelines.PendingCommitStatusTask {
task.RunAfter = nil
}
if task.Name != pipelines.PendingCommitStatusTask {
tasks = append(tasks, task)
}
}
pipeline.Spec.Tasks = tasks
return pipeline
}
14 changes: 9 additions & 5 deletions pkg/pipelines/pipelines/pipelines.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@ var (
pipelineTypeMeta = meta.TypeMeta("Pipeline", "tekton.dev/v1beta1")
)

const pipelineWorkspace = "shared-data"
const (
pipelineWorkspace = "shared-data"
// PendingCommitStatusTask is a task that sets pending commit status
PendingCommitStatusTask = "set-pending-status"
)

// CreateAppCIPipeline creates AppCIPipeline
func CreateAppCIPipeline(name types.NamespacedName) *pipelinev1.Pipeline {
Expand All @@ -36,7 +40,7 @@ func CreateAppCIPipeline(name types.NamespacedName) *pipelinev1.Pipeline {
"COMMIT_MESSAGE",
"GIT_REPO"),
Tasks: []pipelinev1.PipelineTask{
createCommitStatusPipelineTask("set-pending-status", "pending", "The build has started"),
createCommitStatusPipelineTask(PendingCommitStatusTask, "pending", "The build has started"),
createGitCloneTask("clone-source"),
createBuildImageTask("build-image", "clone-source"),
},
Expand Down Expand Up @@ -78,7 +82,7 @@ func createGitCloneTask(name string) pipelinev1.PipelineTask {
createTaskParam("url", "$(params.GIT_REPO)"),
createTaskParam("revision", "$(params.GIT_REF)"),
},
RunAfter: []string{"set-pending-status"},
RunAfter: []string{PendingCommitStatusTask},
}
}

Expand Down Expand Up @@ -120,7 +124,7 @@ func CreateCIPipeline(name types.NamespacedName, stageNamespace string) *pipelin
},

Tasks: []pipelinev1.PipelineTask{
createCommitStatusPipelineTask("set-pending-status", "pending", "The build has started"),
createCommitStatusPipelineTask(PendingCommitStatusTask, "pending", "The build has started"),
createCIPipelineTask("apply-source"),
},
Params: paramSpecs("REPO", "COMMIT_SHA", "GIT_REPO"),
Expand Down Expand Up @@ -159,7 +163,7 @@ func createCIPipelineTask(taskName string) pipelinev1.PipelineTask {
Params: []pipelinev1.Param{
createTaskParam("DRYRUN", "true"),
},
RunAfter: []string{"set-pending-status"},
RunAfter: []string{PendingCommitStatusTask},
}
}

Expand Down
4 changes: 2 additions & 2 deletions pkg/pipelines/pipelines/pipelines_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ func TestCreateAppCIPipeline(t *testing.T) {
{Name: pipelineWorkspace, Description: "This workspace will receive the cloned git repo."},
},
Tasks: []pipelinev1.PipelineTask{
createCommitStatusPipelineTask("set-pending-status", "pending", "The build has started"),
createCommitStatusPipelineTask(PendingCommitStatusTask, "pending", "The build has started"),

{
Name: "clone-source",
Expand All @@ -84,7 +84,7 @@ func TestCreateAppCIPipeline(t *testing.T) {
Workspaces: []pipelinev1.WorkspacePipelineTaskBinding{
{Name: "output", Workspace: pipelineWorkspace},
},
RunAfter: []string{"set-pending-status"},
RunAfter: []string{PendingCommitStatusTask},
},

{
Expand Down

0 comments on commit 1209d50

Please sign in to comment.