in jetbrains-core/src/software/aws/toolkits/jetbrains/services/lambda/steps/LambdaWorkflows.kt [200:251]
fun createDeployWorkflow(
project: Project,
template: VirtualFile,
settings: DeployServerlessApplicationSettings
): StepWorkflow {
val envVars = createAwsEnvVars(project)
val region = AwsConnectionManager.getInstance(project).activeRegion
val buildDir = Paths.get(template.parent.path, SamCommon.SAM_BUILD_DIR, "build")
val builtTemplate = buildDir.resolve("template.yaml")
val packagedTemplate = builtTemplate.parent.resolve("packaged-${builtTemplate.fileName}")
val templatePath = Paths.get(template.path)
Files.createDirectories(buildDir)
return StepWorkflow(
buildList {
if (settings.useContainer) {
add(ValidateDocker())
}
add(
BuildLambda(
BuildLambdaRequest(
templatePath = templatePath,
logicalId = null,
buildDir = buildDir,
buildEnvVars = envVars,
samOptions = SamOptions(buildInContainer = settings.useContainer)
)
)
)
add(
PackageLambda(
templatePath = builtTemplate,
packagedTemplatePath = packagedTemplate,
logicalId = null,
envVars = envVars,
s3Bucket = settings.bucket,
ecrRepo = settings.ecrRepo
)
)
add(
DeployLambda(
packagedTemplateFile = packagedTemplate,
region = region,
envVars = envVars,
settings = settings
)
)
}
)
}