Beispiel #1
0
 def finish_builds_on_success(self, projects: Projects, current_version: str):
     write_to_console("All builds completed successfully, build file updated")
     ProjectListManager().save_project_list(projects)
     version_list = ProjectVersionManager().build_version_list(
         projects, current_version
     )
     ProjectVersionManager().save_version_list(version_list)
Beispiel #2
0
    def setup(self):
        write_to_console("Loading default configuration", color="blue")
        ConfigurationManager.load("monorepo-builder-config.json")

        write_to_console("Checking for installer folder")
        configuration = ConfigurationManager.get()
        Path(configuration.installer_folder).mkdir(exist_ok=True)
Beispiel #3
0
 def run(version: str):
     write_to_console("Starting the build", color="blue")
     runner = Runner()
     runner.setup()
     projects = runner.gather_projects()
     build_requests = runner.do_builds(projects)
     if build_requests.success:
         runner.finish_builds_on_success(projects, version)
     else:
         runner.finish_builds_on_failure(build_requests)
     write_to_console("Build complete", color="blue")
Beispiel #4
0
    def load(cls, configuration_filename: str):
        if not Path(configuration_filename).exists():
            write_to_console(
                "Configuration file not found; default configuration used",
                color="red")
            cls.configuration = Configuration()
            return

        with open(configuration_filename, "r") as configuration_file:
            read_configuration = json.load(configuration_file)
        cls.configuration = Configuration.build_from_settings(
            read_configuration)
Beispiel #5
0
    def run_build(self, project_build_request: ProjectBuildRequest):
        write_to_console(f"{project_build_request.project.name} Building",
                         color="blue",
                         bold=True)
        if not project_build_request.project.needs_build:
            project_build_request.build_status = BuildRequestStatus.NotNeeded
            write_to_console("Build not needed")
            return

        InstallerManager().copy_installers_to_project(
            project_build_request.project)
        result = subprocess.run(["./build.sh"],
                                cwd=project_build_request.project.project_path)
        project_build_request.build_status = BuildRequestStatus.Complete
        project_build_request.run_successful = result.returncode == 0
Beispiel #6
0
 def finish_builds_on_failure(self, build_requests: ProjectBuildRequests):
     write_to_console("Builds failed", color="red")
     for build_request in build_requests.failed:
         write_to_console(f"{build_request.project.name} failed")
Beispiel #7
0
 def gather_projects(self) -> Projects:
     write_to_console("Creating Project List", color="blue")
     projects = Projects.projects_factory()
     write_to_console("Identifying projects requiring a build")
     BuildRunner().identify_projects_needing_build(projects)
     return projects