in aws-codebuild-agent/src/main/java/jetbrains/buildServer/aws/codebuild/CodeBuildRunner.java [241:273]
public void beforeBuildFinish(@NotNull AgentRunningBuild build, @NotNull BuildFinishedStatus buildStatus) {
super.beforeBuildFinish(build, buildStatus);
for (CodeBuildBuildContext c : myCodeBuildBuilds) {
startContext(c, build);
}
while (!myCodeBuildBuilds.isEmpty()) {
for (CodeBuildBuildContext next : new ArrayList<CodeBuildBuildContext>(myCodeBuildBuilds)) {
final boolean buildInterrupted = build.getInterruptReason() != null;
boolean finished = false;
try {
finished = buildInterrupted || finished(next, build);
if (buildInterrupted) {
interrupt(next, build);
}
} finally {
if (finished) {
myCodeBuildBuilds.remove(next);
log(build, getBlockEnd(next));
}
}
}
if (build.getInterruptReason() == null) {
try {
Thread.sleep(CodeBuildConstants.POLL_INTERVAL);
} catch (InterruptedException e) {
break;
}
}
}
myCodeBuildBuilds.clear();
}