public void updateBuild()

in aws-codedeploy-server/src/main/java/jetbrains/buildServer/runner/codedeploy/CodeDeployDeploymentStatusProvider.java [41:101]


  public void updateBuild(@NotNull SRunningBuild runningBuild, @Nullable String trackingInfo) {
    final String deploymentId = getDeploymentInfo(runningBuild);
    assert deploymentId != null;

    final Map<String, String> runnerParameters = getParameters(runningBuild);
    final Date finishDate = AWSCommonParams.withAWSClients(runnerParameters, clients -> {
      final AWSClient awsClient = createAWSClient(clients.createS3Client(), clients.createCodeDeployClient(), runningBuild).withListener(new LoggingDeploymentListener(runnerParameters, StringUtil.EMPTY) {
        private void log(@NotNull String message, @NotNull Status status) {
          runningBuild.getBuildLog().message(message, status, attrs());
        }

        @Override
        protected void log(@NotNull String message) {
          log(message, Status.NORMAL);
        }

        @Override
        protected void err(@NotNull String message) {
          log(message, Status.ERROR);
        }

        @Override
        protected void open(@NotNull String block) {
          runningBuild.getBuildLog().openBlock(block, "", attrs());
        }

        @Override
        protected void close(@NotNull String block) {
          runningBuild.getBuildLog().closeBlock(block, "", new Date(), DEFAULT_FLOW_ID);
        }

        @Override
        protected void progress(@NotNull String message) {
          runningBuild.getBuildLog().progressMessage(message, null, DEFAULT_FLOW_ID);
        }

        @Override
        protected void problem(int identity, @NotNull String type, @NotNull String descr) {
          runningBuild.addBuildProblem(BuildProblemData.createBuildProblem(String.valueOf(identity), type, descr));
        }

        @Override
        protected void parameter(@NotNull String name, @NotNull String value) {
          ((RunningBuildEx) runningBuild).getBuildPromotion().setCustomParameters(Collections.singletonMap(name, value));
        }

        @Override
        protected void statusText(@NotNull String text) {
          ((RunningBuildEx) runningBuild).setCustomStatusText(text);
        }
      });

      try {
        return IOGuard.allowNetworkCall(() -> awsClient.checkDeploymentStatus(deploymentId, runningBuild.getFinishOnAgentDate()));
      } catch (Exception e) {
        throw new RuntimeException(e);
      }
    });
    if (finishDate == null) return;
    runningBuild.finish(finishDate);
  }