in cdk/pipeline/pipeline_stack.py [0:0]
def __init__(self, scope: core.Construct, id: str, eks, redis, rds_cluster, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
self.eks = eks
self.redis = redis
self.rds_cluster = rds_cluster
# create ECR
ecr_repo = ecr.Repository(self, "ECRRep", repository_name="springboot-multiarch")
# create code repo
code = codecommit.Repository(self, "CodeRep", repository_name="springboot-multiarch")
core.CfnOutput(self,"CodeCommitOutput", value=code.repository_clone_url_http)
# create code builds
arm_build = codebuild.PipelineProject(self, "ARMBuild",
build_spec=codebuild.BuildSpec.from_source_filename("cdk/pipeline/armbuild.yml"),
environment=codebuild.BuildEnvironment(
build_image=codebuild.LinuxBuildImage.AMAZON_LINUX_2_ARM,
privileged=True),
environment_variables=self.get_build_env_vars(ecr_repo))
self.add_role_access_to_build(arm_build)
amd_build = codebuild.PipelineProject(self, "AMDBuild",
build_spec=codebuild.BuildSpec.from_source_filename("cdk/pipeline/amdbuild.yml"),
environment=codebuild.BuildEnvironment(
build_image=codebuild.LinuxBuildImage.AMAZON_LINUX_2_3,
privileged=True),
environment_variables=self.get_build_env_vars(ecr_repo))
self.add_role_access_to_build(amd_build)
post_build = codebuild.PipelineProject(self, "PostBuild",
build_spec=codebuild.BuildSpec.from_source_filename("cdk/pipeline/post_build.yml"),
environment=codebuild.BuildEnvironment(
build_image=codebuild.LinuxBuildImage.AMAZON_LINUX_2_3,
privileged=True),
environment_variables=self.get_build_env_vars(ecr_repo))
self.add_role_access_to_build(post_build)
# create pipeline
source_output = codepipeline.Artifact()
arm_build_output = codepipeline.Artifact("ARMBuildOutput")
amd_build_output = codepipeline.Artifact("AMDBuildOutput")
post_build_output = codepipeline.Artifact("PostBuildOutput")
codepipeline.Pipeline(self, "Pipeline",
stages=[
codepipeline.StageProps(stage_name="Source",
actions=[
codepipeline_actions.CodeCommitSourceAction(
action_name="CodeCommit_Source",
repository=code,
output=source_output)]),
codepipeline.StageProps(stage_name="Build",
actions=[
codepipeline_actions.CodeBuildAction(
action_name="ARM_Build",
project=arm_build,
input=source_output,
outputs=[arm_build_output]),
codepipeline_actions.CodeBuildAction(
action_name="AMD_Build",
project=amd_build,
input=source_output,
outputs=[amd_build_output]),
]),
codepipeline.StageProps(stage_name="PostBuild",
actions=[
codepipeline_actions.CodeBuildAction(
action_name="Post_Build",
project=post_build,
input=source_output,
outputs=[post_build_output])
]),
])