in src/build_infrastructure/android/stacks/build_pipeline_stack.py [0:0]
def _create_pipeline(self,
build_pipeline_name: str,
github_source: aws_codepipeline_actions.GitHubSourceAction,
codebuild_project: aws_codebuild.PipelineProject,
config_file_source_bucket_name:str,
df_project: DeviceFarmProject,
device_farm_pool_arn:str):
artifact_bucket = self._create_artifact_bucket(f"pipeline-assets-{build_pipeline_name.lower()}-{self.account}")
self.code_build_project = self._create_codebuild_project("AmplifyAndroidCodeBuildProject")
amplify_android_build_output = aws_codepipeline.Artifact("AmplifyAndroidBuildOutput")
pipeline = aws_codepipeline.Pipeline(self,
f"{build_pipeline_name}Pipeline",
pipeline_name=build_pipeline_name,
artifact_bucket=artifact_bucket,
stages=[
aws_codepipeline.StageProps(
stage_name="Source",
actions=[ github_source ]
),
aws_codepipeline.StageProps(
stage_name="Build",
actions=[self._create_build_and_assemble_action(input_artifact=github_source.action_properties.outputs[0],
output_artifact=amplify_android_build_output,
pipeline_project=codebuild_project,
config_source_bucket=config_file_source_bucket_name)
]
)
])
self._add_devicefarm_test_runner_permissions_to_role(pipeline.role)
self._add_devicefarm_test_stage(pipeline, df_project.get_project_id(), device_farm_pool_arn)
return pipeline