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/24 18:33:27 UTC

[ignite-teamcity-bot] branch ignite-9848-load-all-builds updated: Snapshot deps and flags supported for build

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

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


The following commit(s) were added to refs/heads/ignite-9848-load-all-builds by this push:
     new 3b3c1d0  Snapshot deps and flags supported for build
3b3c1d0 is described below

commit 3b3c1d0f4cdb15908feb10a81b1984bc022f2ab3
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Wed Oct 24 21:33:06 2018 +0300

    Snapshot deps and flags supported for build
---
 .../org/apache/ignite/ci/tcmodel/result/Build.java |  4 ++
 .../ci/teamcity/ignited/BuildRefCompacted.java     |  7 ++-
 .../ignited/fatbuild/FatBuildCompacted.java        | 70 +++++++++++++++++++---
 .../src/test/resources/statistics.xml              | 23 +++++++
 4 files changed, 96 insertions(+), 8 deletions(-)

diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/Build.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/Build.java
index 9eaa544..8fec162 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/Build.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcmodel/result/Build.java
@@ -186,4 +186,8 @@ public class Build extends BuildRef implements IVersionedEntity {
     public void setBuildType(BuildType type) {
         buildType = type;
     }
+
+    public void snapshotDependencies(List<BuildRef> dependencies) {
+        snapshotDependencies = dependencies;
+    }
 }
\ No newline at end of file
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefCompacted.java
index b63b03b..f3dacde 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/BuildRefCompacted.java
@@ -19,6 +19,7 @@ package org.apache.ignite.ci.teamcity.ignited;
 import com.google.common.base.Objects;
 import org.apache.ignite.ci.db.Persisted;
 import org.apache.ignite.ci.tcmodel.hist.BuildRef;
+import org.jetbrains.annotations.NotNull;
 
 @Persisted
 public class BuildRefCompacted {
@@ -72,7 +73,11 @@ public class BuildRefCompacted {
         res.branchName = compactor.getStringFromId(branchName);
         res.status = compactor.getStringFromId(status);
         res.state = compactor.getStringFromId(state);
-        res.href = "/app/rest/latest/builds/id:" + id();
+        res.href = getHrefForId(id());
+    }
+
+    @NotNull protected static String getHrefForId(int id) {
+        return "/app/rest/latest/builds/id:" + id;
     }
 
     /** {@inheritDoc} */
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java
index e1fcd12..a92b2a5 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java
@@ -17,10 +17,15 @@
 package org.apache.ignite.ci.teamcity.ignited.fatbuild;
 
 import java.util.ArrayList;
+import java.util.BitSet;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.IntStream;
+import java.util.stream.Stream;
 import org.apache.ignite.ci.analysis.IVersionedEntity;
 import org.apache.ignite.ci.db.Persisted;
 import org.apache.ignite.ci.tcmodel.conf.BuildType;
+import org.apache.ignite.ci.tcmodel.hist.BuildRef;
 import org.apache.ignite.ci.tcmodel.result.Build;
 import org.apache.ignite.ci.tcmodel.result.TestOccurrencesRef;
 import org.apache.ignite.ci.tcmodel.result.tests.TestOccurrence;
@@ -54,6 +59,10 @@ public class FatBuildCompacted extends BuildRefCompacted implements IVersionedEn
 
     @Nullable private List<TestCompacted> tests;
 
+    @Nullable private int snapshotDeps[];
+
+    private BitSet flags = new BitSet();
+
     /** {@inheritDoc} */
     @Override public int version() {
         return _ver;
@@ -72,21 +81,29 @@ public class FatBuildCompacted extends BuildRefCompacted implements IVersionedEn
 
     /**
      * @param compactor Compactor.
-     * @param ref Reference.
+     * @param build Reference.
      */
-    public FatBuildCompacted(IStringCompactor compactor, Build ref) {
-        super(compactor, ref);
+    public FatBuildCompacted(IStringCompactor compactor, Build build) {
+        super(compactor, build);
 
-        startDate = ref.getStartDate() == null ? -1L : ref.getStartDate().getTime();
-        finishDate = ref.getFinishDate() == null ? -1L : ref.getFinishDate().getTime();
-        queuedDate = ref.getQueuedDate() == null ? -1L : ref.getQueuedDate().getTime();
+        startDate = build.getStartDate() == null ? -1L : build.getStartDate().getTime();
+        finishDate = build.getFinishDate() == null ? -1L : build.getFinishDate().getTime();
+        queuedDate = build.getQueuedDate() == null ? -1L : build.getQueuedDate().getTime();
 
 
-        BuildType type = ref.getBuildType();
+        BuildType type = build.getBuildType();
         if (type != null) {
             projectId = compactor.getStringId(type.getProjectId());
             name = compactor.getStringId(type.getName());
         }
+
+        int[] arr = build.getSnapshotDependenciesNonNull().stream()
+            .filter(b -> b.getId() != null).mapToInt(BuildRef::getId).toArray();
+
+        snapshotDeps = arr.length > 0 ? arr : null;
+
+        setFlag(0, build.defaultBranch);
+        setFlag(2, build.composite);
     }
 
     /**
@@ -128,6 +145,23 @@ public class FatBuildCompacted extends BuildRefCompacted implements IVersionedEn
             testOccurrencesRef.count = tests.size();
             res.testOccurrences = testOccurrencesRef;
         }
+
+        if (snapshotDeps != null) {
+            List<BuildRef> snapshotDependencies = new ArrayList<>();
+            for (int i = 0; i < snapshotDeps.length; i++) {
+                int depId = snapshotDeps[i];
+
+                BuildRef ref = new BuildRef();
+                ref.setId(depId);
+                ref.href = getHrefForId(depId);
+                snapshotDependencies.add(ref);
+            }
+
+            res.snapshotDependencies(snapshotDependencies);
+        }
+
+        res.defaultBranch = getFlag(0);
+        res.composite = getFlag(2);
     }
 
     /**
@@ -145,6 +179,28 @@ public class FatBuildCompacted extends BuildRefCompacted implements IVersionedEn
         }
     }
 
+
+    private void setFlag(int off, Boolean val) {
+        flags.clear(off, off + 2);
+
+        boolean valPresent = val != null;
+        flags.set(off, valPresent);
+
+        if (valPresent)
+            flags.set(off + 1, val);
+    }
+
+
+    /**
+     * @param off Offset.
+     */
+    private Boolean getFlag(int off) {
+        if (!flags.get(off))
+            return null;
+
+        return flags.get(off + 1);
+    }
+
     /**
      * @param compactor Compactor.
      */
diff --git a/ignite-tc-helper-web/src/test/resources/statistics.xml b/ignite-tc-helper-web/src/test/resources/statistics.xml
new file mode 100644
index 0000000..9ee67a3
--- /dev/null
+++ b/ignite-tc-helper-web/src/test/resources/statistics.xml
@@ -0,0 +1,23 @@
+<!--https://ci.ignite.apache.org/app/rest/latest/builds/id:2153237/statistics-->
+<properties count="20">
+    <property name="ArtifactsSize" value="101706824"/>
+    <property name="BuildDuration" value="2499107"/>
+    <property name="BuildDurationNetTime" value="2462538"/>
+    <property name="buildStageDuration:artifactsPublishing" value="9173"/>
+    <property name="buildStageDuration:buildFinishing" value="43"/>
+    <property name="buildStageDuration:buildStepRUNNER_225" value="6069"/>
+    <property name="buildStageDuration:buildStepRUNNER_264" value="1178"/>
+    <property name="buildStageDuration:buildStepRUNNER_265" value="2454000"/>
+    <property name="buildStageDuration:buildStepRUNNER_266" value="459"/>
+    <property name="buildStageDuration:buildStepRUNNER_287" value="832"/>
+    <property name="buildStageDuration:dependenciesResolving" value="23940"/>
+    <property name="buildStageDuration:firstStepPreparation" value="1"/>
+    <property name="buildStageDuration:sourcesUpdate" value="3236"/>
+    <property name="BuildTestStatus" value="3"/>
+    <property name="FailedTestCount" value="1"/>
+    <property name="PassedTestCount" value="152"/>
+    <property name="SuccessRate" value="0"/>
+    <property name="TimeSpentInQueue" value="1931204"/>
+    <property name="TotalTestCount" value="172"/>
+    <property name="VisibleArtifactsSize" value="8116625"/>
+</properties>
\ No newline at end of file