public void processBuild()

in src/main/java/jetbrains/buildServer/investigationsAutoAssigner/processing/DelayedAssignmentsProcessor.java [40:79]


  public void processBuild(final FailedBuildInfo failedBuildInfo, SBuild nextBuild) {
    SBuild sBuild = failedBuildInfo.getBuild();
    SProject sProject = getProject(sBuild);
    if (sProject == null) return;

    if (LOGGER.isDebugEnabled()) {
      LOGGER.debug("Start processing delayed assignments for build #" + sBuild.getBuildId() + ".");
    }
    HeuristicResult heuristicsResult = failedBuildInfo.getHeuristicsResult();

    List<STestRun> applicableFailedTests =
      requestBrokenTestsWithStats(sBuild).stream()
                                         .filter(failedTest -> heuristicsResult.getResponsibility(failedTest) != null)
                                         .collect(Collectors.toList());

    List<String> nextBuildProblemIdentities =
      ((BuildEx)nextBuild).getBuildProblems()
                          .stream()
                          .map(buildProblem -> buildProblem.getBuildProblemData().getIdentity())
                          .collect(Collectors.toList());

    List<BuildProblem> applicableProblems =
      ((BuildEx)sBuild).getBuildProblems()
                       .stream()
                       .filter(buildProblem -> heuristicsResult.getResponsibility(buildProblem) != null &&
                                               nextBuildProblemIdentities.contains(buildProblem.getBuildProblemData().getIdentity()) &&
                                               BuildProblemTypes.TC_EXIT_CODE_TYPE.equals(buildProblem.getBuildProblemData().getType()))
                       .collect(Collectors.toList());

    logProblemsNumber(sBuild, applicableFailedTests, applicableProblems);
    List<STestRun> testsForAssign = myFailedTestFilter.getStillApplicable(failedBuildInfo, sProject, applicableFailedTests);
    List<BuildProblem> problemsForAssign =
      myBuildProblemsFilter.getStillApplicable(failedBuildInfo, sProject, applicableProblems);
    logChangedProblemsNumber(sBuild, applicableFailedTests, testsForAssign, applicableProblems, problemsForAssign);

    myFailedTestAssigner.assign(heuristicsResult, sProject, sBuild, testsForAssign);
    myBuildProblemsAssigner.assign(heuristicsResult, sProject, sBuild, problemsForAssign);

    myAggregationLogger.logDelayedResults(sBuild, nextBuild, heuristicsResult, testsForAssign, problemsForAssign);
  }