in aws-codebuild-agent/src/main/java/jetbrains/buildServer/aws/codebuild/CodeBuildRunner.java [275:309]
private boolean finished(@NotNull final CodeBuildBuildContext c, @NotNull AgentRunningBuild build) {
final List<Build> builds = AWSCommonParams.withAWSClients(c.params, new AWSCommonParams.WithAWSClients<List<Build>, RuntimeException>() {
@Nullable
@Override
public List<Build> run(@NotNull AWSClients clients) throws RuntimeException {
return clients.createCodeBuildClient().batchGetBuilds(new BatchGetBuildsRequest().withIds(c.codeBuildBuildId)).getBuilds();
}
});
if (builds == null || builds.isEmpty()) {
log(build, forContext(c, createTextMessage("No AWS CodeBuild build with id=" + c.codeBuildBuildId + " found", Status.WARNING)));
return true;
}
if (builds.size() > 1) {
log(build, forContext(c, createTextMessage("Found several AWS CodeBuild builds with id=" + c.codeBuildBuildId + ". Will process the first one.", Status.WARNING)));
}
final Build codeBuildBuild = builds.iterator().next();
reportPhases(codeBuildBuild, c, build);
if (codeBuildBuild.getBuildComplete()) {
// import logs in case of failure?
final String format = getBuildString(c) + " %s " + getBuildLink(c.codeBuildBuildId, c.params.get(AWSCommonParams.REGION_NAME_PARAM));
final String status = codeBuildBuild.getBuildStatus();
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))));
}
return true;
}
return false;
}