Search in sources :

Example 1 with Status

use of org.sonarqube.ws.Qualitygates.ProjectStatusResponse.Status in project sonarqube by SonarSource.

the class QualityGateCheck method await.

public void await() {
    if (!enabled) {
        LOG.debug("Quality Gate check disabled - skipping");
        return;
    }
    if (analysisMode.isMediumTest()) {
        throw new IllegalStateException("Quality Gate check not available in medium test mode");
    }
    LOG.info("Waiting for the analysis report to be processed (max {}s)", properties.qualityGateWaitTimeout());
    String taskId = ceTaskReportDataHolder.getCeTaskId();
    Ce.Task task = waitForCeTaskToFinish(taskId);
    if (!TaskStatus.SUCCESS.equals(task.getStatus())) {
        throw MessageException.of(String.format("CE Task finished abnormally with status: %s, you can check details here: %s", task.getStatus().name(), ceTaskReportDataHolder.getCeTaskUrl()));
    }
    Status qualityGateStatus = getQualityGateStatus(task.getAnalysisId());
    if (Status.OK.equals(qualityGateStatus)) {
        LOG.info("QUALITY GATE STATUS: PASSED - View details on " + ceTaskReportDataHolder.getDashboardUrl());
    } else {
        throw MessageException.of("QUALITY GATE STATUS: FAILED - View details on " + ceTaskReportDataHolder.getDashboardUrl());
    }
}
Also used : TaskStatus(org.sonarqube.ws.Ce.TaskStatus) Status(org.sonarqube.ws.Qualitygates.ProjectStatusResponse.Status) Ce(org.sonarqube.ws.Ce)

Aggregations

Ce (org.sonarqube.ws.Ce)1 TaskStatus (org.sonarqube.ws.Ce.TaskStatus)1 Status (org.sonarqube.ws.Qualitygates.ProjectStatusResponse.Status)1