fun createLambdaWorkflowForZip()

in jetbrains-core/src/software/aws/toolkits/jetbrains/services/lambda/steps/LambdaWorkflows.kt [25:72]


fun createLambdaWorkflowForZip(
    project: Project,
    functionDetails: FunctionDetails,
    codeDetails: ZipBasedCode,
    buildDir: Path,
    buildEnvVars: Map<String, String>,
    codeStorageLocation: String,
    samOptions: SamOptions
): StepWorkflow {
    val (dummyTemplate, dummyLogicalId) = createTemporaryZipTemplate(buildDir, codeDetails)
    val packagedTemplate = buildDir.resolve("packaged-temp-template.yaml")
    val builtTemplate = buildDir.resolve("template.yaml")
    val envVars = createAwsEnvVars(project)

    return StepWorkflow(
        buildList {
            if (samOptions.buildInContainer) {
                add(ValidateDocker())
            }

            add(
                BuildLambda(
                    BuildLambdaRequest(
                        templatePath = dummyTemplate,
                        buildDir = buildDir,
                        buildEnvVars = buildEnvVars,
                        samOptions = samOptions
                    )
                ),
            )
            add(
                PackageLambda(
                    templatePath = builtTemplate,
                    packagedTemplatePath = packagedTemplate,
                    logicalId = dummyLogicalId,
                    envVars = envVars,
                    s3Bucket = codeStorageLocation
                ),
            )
            add(
                CreateLambda(
                    lambdaClient = project.awsClient(),
                    details = functionDetails
                )
            )
        }
    )
}