fun createDeployWorkflow()

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
                )
            )
        }
    )
}