def default_projects(self) -> str: """Get string of projects enabled by default. This returns all projects in the mono repo minus the project that were excluded for the current platform. """ cp = ChooseProjects(None) return ';'.join(cp.get_all_enabled_projects())
def _select_projects(config: Configuration, projects: str, repo_path: str) -> str: """select which projects to build. if projects == "default", a default configuraiton will be used. if project == "detect", ChooseProjects is used to magically detect the projects based on the files modified in HEAD """ if projects == "default" or projects is None or len(projects) == 0: return config.default_projects if projects == "detect": cp = ChooseProjects(repo_path) repo = Repo('.') patch = repo.git.diff("HEAD~1") enabled_projects = ';'.join(cp.choose_projects(patch)) if enabled_projects is None or len(enabled_projects) == 0: enabled_projects = cp.get_all_enabled_projects() return enabled_projects return projects
projects = os.getenv('ph_projects', 'detect') log_level = os.getenv('ph_log_level', 'INFO') logging.basicConfig(level=log_level, format='%(levelname)-7s %(message)s') phid = os.getenv('ph_target_phid') url = f"https://reviews.llvm.org/D{os.getenv('ph_buildable_revision')}?id={diff_id}" annotate( f"Build for [D{os.getenv('ph_buildable_revision')}#{diff_id}]({url}). " f"[Harbormaster build](https://reviews.llvm.org/harbormaster/build/{os.getenv('ph_build_id')}).\n" f"If there is a build infrastructure issue, please [create a bug]({feedback_url()})." ) # List all affected projects. repo = git.Repo('.') patch = repo.git.diff("HEAD~1") cp = ChooseProjects('.') modified_files = cp.get_changed_files(patch) modified_projects, unmapped_changes = cp.get_changed_projects( modified_files) if unmapped_changes: logging.warning( 'There were changes that could not be mapped to a project. Checking everything' ) modified_projects = cp.all_projects logging.info(f'modified projects: {modified_projects}') # Add projects that depend on modified. affected_projects = cp.get_affected_projects(modified_projects) steps = [] projects = cp.add_dependencies(affected_projects) logging.info(f'projects with dependencies: {projects}') # Add generic Linux checks.