in magenta-lib/src/main/scala/magenta/input/resolver/TaskResolver.scala [19:57]
def resolve(
deployment: Deployment,
deploymentResources: DeploymentResources,
parameters: DeployParameters,
deploymentTypes: Seq[DeploymentType],
artifact: S3Artifact
): Validated[ConfigErrors, DeploymentTasks] = {
val validatedDeploymentType = Validated.fromOption(
deploymentTypes.find(_.name == deployment.`type`),
ConfigErrors(
deployment.name,
s"Deployment type ${deployment.`type`} not found"
)
)
validatedDeploymentType.map { deploymentType =>
val deploymentPackage =
createDeploymentPackage(deployment, artifact, deploymentTypes)
val tasks = for {
region <- deployment.regions.toList
stack <- deployment.stacks.toList
actionName <- deployment.actions.toList
deploymentStep = deploymentType.mkDeploymentStep(actionName)(
deploymentPackage
)
target = DeployTarget(parameters, Stack(stack), Region(region))
task <- deploymentStep.resolve(deploymentResources, target)
} yield task
DeploymentTasks(
tasks,
mkLabel(
deploymentPackage.name,
deployment.actions,
deployment.regions,
deployment.stacks
)
)
}
}