in ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/trends/MasterTrendsService.java [98:171]
public void initialize(BuildStatisticsSummary s, @Nonnull final ITeamcityIgnited tcIgn) {
BuildStatisticsSummary.initStrings(compactor);
FatBuildCompacted build = tcIgn.getFatBuild(s.buildId);
s.isFakeStub = build.isFakeStub();
if (s.isFakeStub)
return;
Map<Integer, Future<FatBuildCompacted>> builds = bcp.loadAllBuildsInChains(
Collections.singletonList(s.buildId), SyncMode.RELOAD_QUEUED, tcIgn);
List<FatBuildCompacted> chainBuilds = FutureUtil.getResults(builds.values()).collect(Collectors.toList());
if (chainBuilds.stream().allMatch(b -> build.isFakeStub())) {
s.isFakeStub = true;
return;
}
Date startDate = build.getStartDate();
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy'T'HH:mm:ss");
s.startDate = dateFormat.format(startDate);
int[] arr = new int[4];
chainBuilds.stream().filter(b -> !b.isComposite())
.forEach(b -> {
b.getAllTests().forEach(t -> {
if (t.isIgnoredTest())
arr[0]++;
else if (t.isMutedTest())
arr[1]++;
else if (t.status() != BuildStatisticsSummary.getStringId(TestOccurrence.STATUS_SUCCESS))
arr[2]++;
arr[3]++;
if (t.status() == BuildStatisticsSummary.getStringId(TestOccurrence.STATUS_FAILURE)
&& !t.isIgnoredTest() && !t.isMutedTest()) {
Map<Integer, T2<Long, Integer>> btTests = s.failedTests().computeIfAbsent(b.buildTypeId(), k -> new HashMap<>());
btTests.merge(t.testName(), new T2<>(t.getTestId(), 1), (v, x) -> {
int cnt = (x == null ? 0 : x.get2()) + (v == null ? 0 : v.get2());
return new T2<>(t.getTestId(), cnt);
});
}
});
});
s.testOccurrences.ignored = arr[0];
s.testOccurrences.muted = arr[1];
s.testOccurrences.failed = arr[2];
s.testOccurrences.count = arr[3];
s.testOccurrences.passed = s.testOccurrences.count - s.testOccurrences.failed - s.testOccurrences.ignored -
s.testOccurrences.muted;
Stream<FatBuildCompacted> snapshotDependenciesWithProblems
= chainBuilds.stream()
.filter(b -> !b.isComposite())
.filter(b -> b.status() != BuildStatisticsSummary.getStringId(BuildRef.STATUS_SUCCESS));
s.duration = chainBuilds.stream()
.filter(b -> !b.isComposite())
.map(b -> b.buildDuration(compactor))
.filter(Objects::nonNull)
.mapToLong(ts -> ts / 1000).sum();
List<ProblemCompacted> problems = s.getProblems(snapshotDependenciesWithProblems);
s.totalProblems = s.getBuildTypeProblemsCount(problems);
}