diff --git a/dataset.py b/dataset.py index 063bbac..c52f085 100644 --- a/dataset.py +++ b/dataset.py @@ -13,6 +13,7 @@ class Metadata: pr_number: int merge_commit_sha: str # to checkout for the tests successful: bool = True + build_system: str = "" reason_for_failure: str = "" last_cmd_error_msg: str = "" diff --git a/handlers.py b/handlers.py index c18871e..6c69bad 100644 --- a/handlers.py +++ b/handlers.py @@ -124,6 +124,10 @@ class BuildHandler(ABC): def clean_repo(self) -> None: self.container.exec_run(self.clean_cmd()) + @abstractmethod + def get_type(self) -> str: + pass + @abstractmethod def compile_cmd(self) -> str: pass @@ -160,6 +164,9 @@ class MavenHandler(BuildHandler): # -Dstyle.color=never: Disables ANSI colors. # -Dartifact.download.skip=true: Prevents Maven from printing download logs (but still downloads dependencies when needed). + def get_type(self) -> str: + return "maven" + def compile_cmd(self) -> str: return f"{self.base_cmd} clean compile" @@ -205,6 +212,9 @@ class GradleHandler(BuildHandler): super().__init__(repo_path, build_file, updates) self.base_cmd = "gradle --no-daemon --console=plain" + def get_type(self) -> str: + return "gradle" + def compile_cmd(self) -> str: return f"{self.base_cmd} compileJava" diff --git a/pull_requests.py b/pull_requests.py index 8ea34fc..49b8bfe 100644 --- a/pull_requests.py +++ b/pull_requests.py @@ -121,6 +121,7 @@ def process_pull(repo: Repository, pr: PullRequest, dataset: Dataset, repos_dir: entry.metadata.reason_for_failure = "Couldn't get the build handler" entry.metadata.successful = False return + entry.metadata.build_system = build_handler.get_type() build_handler.set_client(docker_client) def _check_coverage(files: list[str]):