diff --git a/workflows/database_common.go b/workflows/database_common.go index e7116ac8..42bfe19c 100644 --- a/workflows/database_common.go +++ b/workflows/database_common.go @@ -35,3 +35,9 @@ func (workflow *databaseWorkflow) databaseInput(ctx *common.Context, serviceName return nil } } + +func (workflow *databaseWorkflow) hasDatabase() Conditional { + return func() bool { + return workflow.databaseName != "" + } +} diff --git a/workflows/database_upsert.go b/workflows/database_upsert.go index f041c1cf..a6bf5905 100644 --- a/workflows/database_upsert.go +++ b/workflows/database_upsert.go @@ -23,10 +23,14 @@ func NewDatabaseUpserter(ctx *common.Context, environmentName string) Executor { return newPipelineExecutor( workflow.databaseInput(ctx, "", environmentName), - workflow.databaseEnvironmentLoader(ctx.Config.Namespace, environmentName, ctx.StackManager, ecsImportParams, ctx.ElbManager), - workflow.databaseRolesetUpserter(ctx.RolesetManager, ctx.RolesetManager, environmentName), - workflow.databaseMasterPassword(ctx.Config.Namespace, &ctx.Config.Service, &ecsImportParams, environmentName, ctx.ParamManager, cliExtension), - workflow.databaseDeployer(ctx.Config.Namespace, &ctx.Config.Service, ecsImportParams, environmentName, ctx.StackManager, ctx.StackManager, ctx.RdsManager), + newConditionalExecutor(workflow.hasDatabase(), + newPipelineExecutor( + workflow.databaseEnvironmentLoader(ctx.Config.Namespace, environmentName, ctx.StackManager, ecsImportParams, ctx.ElbManager), + workflow.databaseRolesetUpserter(ctx.RolesetManager, ctx.RolesetManager, environmentName), + workflow.databaseMasterPassword(ctx.Config.Namespace, &ctx.Config.Service, &ecsImportParams, environmentName, ctx.ParamManager, cliExtension), + workflow.databaseDeployer(ctx.Config.Namespace, &ctx.Config.Service, ecsImportParams, environmentName, ctx.StackManager, ctx.StackManager, ctx.RdsManager), + ), + nil), ) } diff --git a/workflows/pipeline_upsert.go b/workflows/pipeline_upsert.go index 1c73a694..37792ee6 100644 --- a/workflows/pipeline_upsert.go +++ b/workflows/pipeline_upsert.go @@ -28,8 +28,10 @@ func NewPipelineUpserter(ctx *common.Context, tokenProvider func(bool) string) E return newPipelineExecutor( workflow.serviceFinder("", ctx), workflow.pipelineToken(ctx.Config.Namespace, tokenProvider, ctx.StackManager, stackParams), - workflow.pipelineBucket(ctx.Config.Namespace, stackParams, ctx.StackManager, ctx.StackManager), - workflow.codedeployBucket(ctx.Config.Namespace, &ctx.Config.Service, ctx.StackManager, ctx.StackManager), + newParallelExecutor( + workflow.pipelineBucket(ctx.Config.Namespace, stackParams, ctx.StackManager, ctx.StackManager), + workflow.codedeployBucket(ctx.Config.Namespace, &ctx.Config.Service, ctx.StackManager, ctx.StackManager), + ), workflow.pipelineRolesetUpserter(ctx.RolesetManager, ctx.RolesetManager, stackParams), workflow.pipelineUpserter(ctx.Config.Namespace, ctx.StackManager, ctx.StackManager, stackParams), workflow.pipelineNotifyUpserter(ctx.Config.Namespace, &ctx.Config.Service.Pipeline, ctx.SubscriptionManager))