def run(self) -> HandlerResults:

        logger.debug(f"Received testing-farm result:\n{self.event.result}")
        logger.debug(
            f"Received testing-farm test results:\n{self.event.tests}")

        if self.event.result == TestingFarmResult.passed:
            status = CommitStatus.success
            passed = True
        else:
            status = CommitStatus.failure
            passed = False

        if (len(self.event.tests) == 1
                and self.event.tests[0].name == "/install/copr-build"):
            logger.debug("No-fmf scenario discovered.")
            short_msg = "Installation passed" if passed else "Installation failed"
        else:
            short_msg = self.event.message

        status_reporter = StatusReporter(self.project, self.event.commit_sha)
        status_reporter.report(
            state=status,
            description=short_msg,
            url=self.event.log_url,
            check_names=TestingFarmJobHelper.get_test_check(
                self.event.copr_chroot),
        )

        return HandlerResults(success=True, details={})
Beispiel #2
0
    def run(self) -> TaskResults:

        logger.debug(f"Received testing-farm result:\n{self.result}")
        logger.debug(f"Received testing-farm test results:\n{self.tests}")

        test_run_model = TFTTestRunModel.get_by_pipeline_id(
            pipeline_id=self.pipeline_id
        )
        if not test_run_model:
            logger.warning(
                f"Unknown pipeline_id received from the testing-farm: "
                f"{self.pipeline_id}"
            )

        if test_run_model:
            test_run_model.set_status(self.result)

        if self.result == TestingFarmResult.passed:
            status = CommitStatus.success
            passed = True
        elif self.result == TestingFarmResult.error:
            status = CommitStatus.error
            passed = False
        else:
            status = CommitStatus.failure
            passed = False

        github_status_url = self.log_url
        if len(self.tests) == 1 and self.tests[0].name == "/install/copr-build":
            logger.debug("No-fmf scenario discovered.")
            short_msg = "Installation passed" if passed else "Installation failed"
        elif self.message.startswith(
            "Command '['git', 'clone'"
        ) and self.message.endswith("failed with exit code 128"):
            short_msg = "Problem with Testing-Farm cluster"
            github_status_url = "https://pagure.io/centos-infra/issue/85"
        else:
            short_msg = self.message

        if test_run_model:
            test_run_model.set_web_url(self.log_url)
        status_reporter = StatusReporter(
            project=self.project, commit_sha=self.data.commit_sha, pr_id=self.data.pr_id
        )
        status_reporter.report(
            state=status,
            description=short_msg,
            url=github_status_url,
            check_names=TestingFarmJobHelper.get_test_check(self.copr_chroot),
        )

        return TaskResults(success=True, details={})
    def run(self) -> TaskResults:
        logger.debug(f"Testing farm {self.pipeline_id} result:\n{self.result}")
        logger.debug(f"Testing farm test results:\n{self.tests}")

        test_run_model = TFTTestRunModel.get_by_pipeline_id(
            pipeline_id=self.pipeline_id)
        if not test_run_model:
            logger.warning(
                f"Unknown pipeline_id received from the testing-farm: "
                f"{self.pipeline_id}")

        if test_run_model:
            test_run_model.set_status(self.result)

        if self.result == TestingFarmResult.running:
            status = CommitStatus.pending
            if isinstance(self.project.service, GitlabService):
                # only Gitlab has 'running' state
                status = CommitStatus.running
            summary = self.summary or "Tests are running ..."
        elif self.result == TestingFarmResult.passed:
            status = CommitStatus.success
            summary = self.summary or "Tests passed ..."
        elif self.result == TestingFarmResult.error:
            status = CommitStatus.error
            if isinstance(self.project.service, GitlabService):
                # Gitlab has no 'error' state
                status = CommitStatus.failure
            summary = self.summary or "Error ..."
        else:
            status = CommitStatus.failure
            summary = self.summary or "Tests failed ..."

        if len(self.tests
               ) > 0 and self.tests[0].name == "/packit/install-and-verify":
            logger.debug("No-fmf scenario discovered.")
            summary = ("Installation passed" if status == CommitStatus.success
                       else "Installation failed")

        if test_run_model:
            test_run_model.set_web_url(self.log_url)
        status_reporter = StatusReporter(project=self.project,
                                         commit_sha=self.data.commit_sha,
                                         pr_id=self.data.pr_id)
        status_reporter.report(
            state=status,
            description=summary,
            url=self.log_url,
            check_names=TestingFarmJobHelper.get_test_check(self.copr_chroot),
        )

        return TaskResults(success=True, details={})
    def run(self) -> HandlerResults:

        logger.debug(f"Received testing-farm result:\n{self.event.result}")
        logger.debug(
            f"Received testing-farm test results:\n{self.event.tests}")

        test_run_model = TFTTestRunModel.get_by_pipeline_id(
            pipeline_id=self.event.pipeline_id)
        if not test_run_model:
            logger.warning(
                f"Unknown pipeline_id received from the testing-farm: "
                f"{self.event.pipeline_id}")

        if test_run_model:
            test_run_model.set_status(self.event.result)

        if self.event.result == TestingFarmResult.passed:
            status = CommitStatus.success
            passed = True

        else:
            status = CommitStatus.failure
            passed = False

        if (len(self.event.tests) == 1
                and self.event.tests[0].name == "/install/copr-build"):
            logger.debug("No-fmf scenario discovered.")
            short_msg = "Installation passed" if passed else "Installation failed"
        else:
            short_msg = self.event.message

        if test_run_model:
            test_run_model.set_web_url(self.event.log_url)
        status_reporter = StatusReporter(self.event.project,
                                         self.event.commit_sha)
        status_reporter.report(
            state=status,
            description=short_msg,
            url=self.event.log_url,
            check_names=TestingFarmJobHelper.get_test_check(
                self.event.copr_chroot),
        )

        return HandlerResults(success=True, details={})