in infra/src/custom_constructs/ml_pipeline_construct.py [0:0]
def __init__(self, scope: core.Construct, id: str, repo_type: str, train_stage_type: str,
deploy_stage_type: str = None, envs: List[Dict[str, str]] = None):
super().__init__(scope, id, restart_execution_on_update=True)
if envs is None or len(envs) == 0:
envs = [{"EnvName": "Dev", "RequireManualApproval": 0}]
# Source
repo_factory_locator = RepoFactoryLocator()
repo_action = repo_factory_locator.get(repo_type, self)
self.add_stage(stage_name="Source", actions=[repo_action])
# # Train
train_stage = self._get_train_actions_builder(train_stage_type)
#
# Deploy
deploy_stage = self._get_deploy_actions_builder(deploy_stage_type)
#
approval_action = ApprovalStage()
#
for env in envs:
env_name = env['EnvName']
# Manual approval
require_manual_approval = env['RequireManualApproval']
self._add_env_stage(env_name, require_manual_approval, repo_action, approval_action, train_stage,
deploy_stage)