for parent in repo_dependencies[dependent_repo_name]: if parent in repo_names: return parent return dependent_repo_name for repository in job_config.get("sync_repos", []): if repository.get("type", None) == "pull_request": debug("[INFO] Adding PR sync for : " + repository["name"]) sync_actions.append(PullRequestSyncAction(repository["name"])) else: # if test is a PR, point to dependency repository to the PR's repository branch debug("[INFO] Adding repo sync for : " + repository["name"]) dependency_repository = get_parent_repo(repository["name"]) if is_pull_request else repository["name"] sync_actions.append(SyncAction(repository["name"], dependency_repository)) if len(sync_actions) > 0: debug("[INFO] Coalescing into multi sync") actions.append(MultiSyncAction(output_format, sync_actions)) # we need to expose the extra -e vars to the steps if "evars" in job_config: actions.append(EvarsAction(job_config["evars"], output_format)) def parse_action(action): if action["type"] == "script": debug("[INFO] Adding script action " + action.get("title", "")) return ScriptAction(action.get("repository", None), action["script"], action.get("title", None), action.get("timeout", None), output_format) elif action["type"] == "host_script":
# next, all jobs will provision a remote VM actions.append( ProvisionAction( os=job_config["provision"]["os"], stage=job_config["provision"]["stage"], provider=job_config["provision"]["provider"], )) # next, repositories will be synced to the remote VM sync_actions = [] for repository in job_config.get("sync_repos", []): if repository.get("type", None) == "pull_request": sync_actions.append(PullRequestSyncAction(repository["name"])) else: sync_actions.append(SyncAction(repository["name"])) if len(sync_actions) > 0: actions.append(MultiSyncAction(sync_actions)) # now, the job can define actions to take for action in job_config.get("actions", []): if action["type"] == "script": actions.append( ScriptAction(action.get("repository", None), action["script"], action.get("title", None), action.get("timeout", None))) elif action["type"] == "host_script": actions.append( HostScriptAction(action["script"], action.get("title", None))) elif action["type"] == "forward_parameters":
if dependent_repo_name in repo_dependencies: for parent in repo_dependencies[dependent_repo_name]: if parent in repo_names: return parent return dependent_repo_name for repository in job_config.get("sync_repos", []): if repository.get("type", None) == "pull_request": sync_actions.append(PullRequestSyncAction(repository["name"])) else: # if test is a PR, point to dependency repository to the PR's repository branch dependency_repository = get_parent_repo( repository["name"]) if is_pull_request else repository["name"] sync_actions.append( SyncAction(repository["name"], dependency_repository)) if len(sync_actions) > 0: actions.append(MultiSyncAction(sync_actions)) def parse_action(action): if action["type"] == "script": return ScriptAction(action.get("repository", None), action["script"], action.get("title", None), action.get("timeout", None)) elif action["type"] == "host_script": return HostScriptAction(action["script"], action.get("title", None)) elif action["type"] == "forward_parameters": return ForwardParametersAction(action.get("parameters", [])) else: