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 <dpav...@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