public DsSuiteUi initFromContext()

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;
    }