private void reportPhases()

in aws-codebuild-agent/src/main/java/jetbrains/buildServer/aws/codebuild/CodeBuildRunner.java [328:353]


  private void reportPhases(@NotNull Build codeBuildBuild, @NotNull CodeBuildBuildContext c, @NotNull AgentRunningBuild build) {
    if (codeBuildBuild.getPhases() == null || codeBuildBuild.getPhases().size() <= c.prevPhases.size()) return;

    for (BuildPhase phase : codeBuildBuild.getPhases()) {
      final String phaseName = phase.getPhaseType();
      if (isPhaseReported(phaseName, c)) continue;

      final String format = getFormat(phase, phaseName);
      final String status = phase.getPhaseStatus();
      if (status == null || isInProgress(status)) {
        if (c.prevPhases.get(phaseName) == null) { // not yet reported
          log(build, forContext(c, createProgressMessage(String.format(format, "in progress")).updateTags(DefaultMessagesInfo.TAG_INTERNAL)));
        }
        c.prevPhases.put(phaseName, status);
      } else {
        c.prevPhases.put(phaseName, status);

        if (isSucceeded(status)) {
          log(build, forContext(c, createTextMessage(String.format(format, "succeeded"))));
        } else {
          log(build, forContext(c, createTextMessage(String.format(format, isFailed(status) ? "failed" : "finished with status " + status), Status.ERROR)));
          log(build, forContext(c, createBuildProblemMessage(createBuildProblem(phase, c.params, build.getCheckoutDirectory().getAbsolutePath()))));
        }
      }
    }
  }