in tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/ui/DsSuiteUi.java [145:261]
public DsSuiteUi initFromContext(ITeamcityIgnited tcIgnited,
@Nonnull final MultBuildRunCtx suite,
@Nullable final String baseBranch,
@Nonnull IStringCompactor compactor,
boolean calcTrustedTests,
int maxDurationSec,
@Nullable Map<Integer, Integer> requireParamVal,
boolean showMuted,
boolean showIgnored) {
String failRateNormalizedBranch = normalizeBranch(baseBranch);
Integer baseBranchId = compactor.getStringIdIfPresent(failRateNormalizedBranch);
IRunHistory baseBranchHist = suite.history(tcIgnited, baseBranchId, requireParamVal);
initFrom(suite, tcIgnited, compactor, baseBranchHist);
String curBranchNormalized = normalizeBranch(suite.branchName());
Integer curBranchId = compactor.getStringIdIfPresent(curBranchNormalized);
initSuiteStat(tcIgnited, baseBranchId, curBranchId, suite, baseBranchHist, requireParamVal);
Set<String> collect = suite.lastChangeUsers().collect(Collectors.toSet());
if (!collect.isEmpty())
userCommits = collect.toString();
hasCriticalProblem = suite.hasCriticalProblem();
failedTests = suite.failedTests();
durationPrintable = millisToDurationPrintable(suite.buildDuration());
durationNetTimePrintable = millisToDurationPrintable(suite.buildDurationNetTime());
sourceUpdateDurationPrintable = millisToDurationPrintable(suite.sourceUpdateDuration());
artifcactPublishingDurationPrintable = millisToDurationPrintable(suite.artifcactPublishingDuration());
dependeciesResolvingDurationPrintable = millisToDurationPrintable(suite.dependeciesResolvingDuration());
testsDurationPrintable = millisToDurationPrintable(suite.getAvgTestsDuration());
webToHist = buildWebLinkToHist(tcIgnited, suite, suite.branchName());
webToHistBaseBranch = buildWebLinkToHist(tcIgnited, suite, baseBranch);
if (true) {
List<TestCompactedMult> tests = suite.getFilteredTests(test ->
test.hasLongRunningTest(maxDurationSec)
|| test.includeIntoReport(tcIgnited, baseBranchId, showMuted, showIgnored));
Function<TestCompactedMult, Float> function = testCompactedMult -> {
IRunHistory res = testCompactedMult.history(tcIgnited, baseBranchId);
return res == null ? 0f : res.getFailRate();
};
tests.sort(Comparator.comparing(function).reversed());
tests.stream()
.map(occurrence -> new DsTestFailureUi()
.initFromOccurrence(occurrence,
tcIgnited,
suite.projectId(),
suite.branchName(),
baseBranch,
baseBranchId,
curBranchId,
requireParamVal))
.forEach(testFailureUi -> testFailures.add(testFailureUi));
suite.getTopLongRunning().forEach(occurrence -> {
if (occurrence.getAvgDurationMs() > TimeUnit.SECONDS.toMillis(15)) {
final DsTestFailureUi failure = createOrrucForLongRun(tcIgnited, compactor, suite, occurrence, baseBranch, requireParamVal);
topLongRunning.add(failure);
}
});
suite.getCriticalFailLastStartedTest().forEach(
lastTest -> {
final DsTestFailureUi failure = new DsTestFailureUi();
failure.name = lastTest + " (last started)";
testFailures.add(failure);
}
);
suite.getLogsCheckResults().forEach(map -> {
map.forEach(
(testName, logCheckResult) -> {
if (logCheckResult.hasWarns())
this.findFailureAndAddWarning(testName, logCheckResult);
}
);
}
);
suite.getTopLogConsumers().forEach(
(entry) -> logConsumers.add(createOccurForLogConsumer(entry))
);
totalTests = suite.totalTests();
if(calcTrustedTests)
trustedTests = suite.trustedTests(tcIgnited, baseBranchId);
}
suite.getBuildsWithThreadDump().forEach(buildId -> {
webUrlThreadDump = "/rest/" + GetBuildLog.GET_BUILD_LOG + "/" + GetBuildLog.THREAD_DUMP
+ "?" + GetBuildLog.SERVER_ID + "=" + tcIgnited.serverCode()
+ "&" + GetBuildLog.BUILD_NO + "=" + buildId
+ "&" + GetBuildLog.FILE_IDX + "=" + -1;
});
runningBuildCount = suite.runningBuildCount();
queuedBuildCount = suite.queuedBuildCount();
serverId = tcIgnited.serverCode();
suiteId = suite.suiteId();
branchName = normalizeBranch(suite.branchName());
tags = suite.tags();
success = !suite.isFailed();
return this;
}