You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2018/10/27 12:45:07 UTC

[ignite-teamcity-bot] branch master updated: IGNITE-9848: Composite builds display fixed

This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git


The following commit(s) were added to refs/heads/master by this push:
     new 3e753de  IGNITE-9848: Composite builds display fixed
3e753de is described below

commit 3e753de2600a0e75a637a17f749f73124f49c2f4
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Sat Oct 27 15:45:06 2018 +0300

    IGNITE-9848: Composite builds display fixed
---
 .../apache/ignite/ci/analysis/MultBuildRunCtx.java |  2 +-
 .../ignite/ci/analysis/SingleBuildRunCtx.java      | 18 +++++---
 .../ignite/ci/tcbot/chain/BuildChainProcessor.java | 48 +++++++++++-----------
 3 files changed, 38 insertions(+), 30 deletions(-)

diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java
index 34da5c7..6f18130 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/MultBuildRunCtx.java
@@ -397,7 +397,7 @@ public class MultBuildRunCtx implements ISuiteResults {
     }
 
     /**
-     * @return Set of tests.
+     * @return Set of tests (both for composite and regular)
      */
     public Set<String> tests() {
         return buildsStream().flatMap(SingleBuildRunCtx::getAllTestNames).collect(Collectors.toSet());
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java
index 7de870f..f34a53d 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/analysis/SingleBuildRunCtx.java
@@ -19,10 +19,8 @@ package org.apache.ignite.ci.analysis;
 
 import com.google.common.base.Preconditions;
 import com.google.common.base.Strings;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+
+import java.util.*;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.Future;
 import java.util.stream.Stream;
@@ -31,6 +29,7 @@ import org.apache.ignite.ci.tcmodel.changes.Change;
 import org.apache.ignite.ci.tcmodel.result.Build;
 import org.apache.ignite.ci.tcmodel.result.problems.ProblemOccurrence;
 import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrence;
+import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrenceFull;
 import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
 import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
 import org.apache.ignite.ci.util.FutureUtil;
@@ -165,7 +164,10 @@ public class SingleBuildRunCtx implements ISuiteResults {
         return changes;
     }
 
-    public List<? extends TestOccurrence> getTests() {
+    public List<TestOccurrenceFull> getTests() {
+        if(isComposite())
+            return Collections.emptyList();
+
         return buildCompacted.getTestOcurrences(compactor).getTests();
     }
 
@@ -183,7 +185,13 @@ public class SingleBuildRunCtx implements ISuiteResults {
     }
 
 
+    /**
+     * @return Names of not muted or ignored test failed for non composite build
+     */
     public Stream<String> getFailedNotMutedTestNames() {
+        if(isComposite())
+            return Stream.empty();
+
         return buildCompacted.getFailedNotMutedTestNames(compactor);
     }
 
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java
index baa71f2..3d44832 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/BuildChainProcessor.java
@@ -46,7 +46,6 @@ import org.apache.ignite.ci.tcmodel.changes.ChangeRef;
 import org.apache.ignite.ci.tcmodel.changes.ChangesList;
 import org.apache.ignite.ci.tcmodel.hist.BuildRef;
 import org.apache.ignite.ci.tcmodel.result.Build;
-import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrencesFull;
 import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
 import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
 import org.apache.ignite.ci.teamcity.ignited.fatbuild.FatBuildCompacted;
@@ -113,7 +112,7 @@ public class BuildChainProcessor {
 
         final List<Future<Stream<BuildRef>>> phase1Submitted = uniqueBuldsInvolved
                 .map((buildRef) -> svc.submit(
-                        () -> replaceWithRecent(teamcity, teamcityIgnited, includeLatestRebuild, unique, buildRef, entryPoints.size())))
+                        () -> replaceWithRecent(teamcityIgnited, includeLatestRebuild, unique, buildRef, entryPoints.size())))
                 .collect(Collectors.toList());
 
 
@@ -133,31 +132,29 @@ public class BuildChainProcessor {
             fillBuildCounts(multiCtx, teamcityIgnited, includeScheduledInfo);
         });
 
-        if (teamcity != null) {
-            Function<MultBuildRunCtx, Float> function = ctx -> {
-                SuiteInBranch key = new SuiteInBranch(ctx.suiteId(), normalizeBranch(failRateBranch));
+        Function<MultBuildRunCtx, Float> function = ctx -> {
+            SuiteInBranch key = new SuiteInBranch(ctx.suiteId(), normalizeBranch(failRateBranch));
 
-                RunStat runStat = teamcity.getBuildFailureRunStatProvider().apply(key);
+            RunStat runStat = teamcity.getBuildFailureRunStatProvider().apply(key);
 
-                if (runStat == null)
-                    return 0f;
+            if (runStat == null)
+                return 0f;
 
-                //some hack to bring timed out suites to top
-                return runStat.getCriticalFailRate() * 3.14f + runStat.getFailRate();
-            };
+            //some hack to bring timed out suites to top
+            return runStat.getCriticalFailRate() * 3.14f + runStat.getFailRate();
+        };
 
-            contexts.sort(Comparator.comparing(function).reversed());
-        }
-        else
-            contexts.sort(Comparator.comparing(MultBuildRunCtx::suiteName));
+        contexts.sort(Comparator.comparing(function).reversed());
 
         fullChainRunCtx.addAllSuites(contexts);
 
         return fullChainRunCtx;
     }
 
+    @SuppressWarnings("WeakerAccess")
     @NotNull
-    public Stream<? extends BuildRef> processBuildList(ITeamcity teamcity,
+    @AutoProfiling
+    protected Stream<? extends BuildRef> processBuildList(ITeamcity teamcity,
         ITeamcityIgnited teamcityIgnited, Map<String, MultBuildRunCtx> buildsCtxMap,
         Stream<? extends BuildRef> list) {
         list.forEach((BuildRef ref) -> {
@@ -184,7 +181,7 @@ public class BuildChainProcessor {
 
         SingleBuildRunCtx ctx = new SingleBuildRunCtx(buildFromFat, buildCompacted, compactor);
 
-        if (!buildFromFat.isComposite())
+        if (!buildCompacted.isComposite())
             mCtx.addTests(buildCompacted.getTestOcurrences(compactor).getTests());
 
 
@@ -224,10 +221,14 @@ public class BuildChainProcessor {
         return ctx;
     }
 
+    @SuppressWarnings("WeakerAccess")
     @NotNull
-    public static Stream< BuildRef> replaceWithRecent(ITeamcity teamcity,
-        ITeamcityIgnited teamcityIgnited, LatestRebuildMode includeLatestRebuild,
-        Map<Integer, BuildRef> unique, BuildRef buildRef, int cntLimit) {
+    @AutoProfiling
+    protected static Stream< BuildRef> replaceWithRecent(ITeamcityIgnited teamcityIgnited,
+                                                      LatestRebuildMode includeLatestRebuild,
+                                                      Map<Integer, BuildRef> unique,
+                                                      BuildRef buildRef,
+                                                      int cntLimit) {
         if (includeLatestRebuild == LatestRebuildMode.NONE)
             return Stream.of(buildRef);
 
@@ -292,13 +293,12 @@ public class BuildChainProcessor {
     }
 
     private static void analyzeTests(MultBuildRunCtx outCtx, IAnalyticsEnabledTeamcity teamcity,
-        ProcessLogsMode procLog) {
+                                     ProcessLogsMode procLog) {
         for (SingleBuildRunCtx ctx : outCtx.getBuilds()) {
-            if (teamcity != null)
-                teamcity.calculateBuildStatistic(ctx);
+            teamcity.calculateBuildStatistic(ctx);
 
             if ((procLog == ProcessLogsMode.SUITE_NOT_COMPLETE && ctx.hasSuiteIncompleteFailure())
-                || procLog == ProcessLogsMode.ALL)
+                    || procLog == ProcessLogsMode.ALL)
                 ctx.setLogCheckResFut(teamcity.analyzeBuildLog(ctx.buildId(), ctx));
         }
     }