From commits-return-121712-archive-asf-public=cust-asf.ponee.io@ignite.apache.org Fri Nov 16 12:53:32 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 07FCD180670 for ; Fri, 16 Nov 2018 12:53:31 +0100 (CET) Received: (qmail 8618 invoked by uid 500); 16 Nov 2018 11:53:31 -0000 Mailing-List: contact commits-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list commits@ignite.apache.org Received: (qmail 8609 invoked by uid 99); 16 Nov 2018 11:53:31 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 16 Nov 2018 11:53:31 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id 7C93A82DDF; Fri, 16 Nov 2018 11:53:30 +0000 (UTC) Date: Fri, 16 Nov 2018 11:53:30 +0000 To: "commits@ignite.apache.org" Subject: [ignite-teamcity-bot] branch ignite-10243 updated: IGNITE-10243 Cancelled runAll display as valid in PRs table MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-ID: <154236921046.16667.15959806120037964849@gitbox.apache.org> From: dpavlov@apache.org X-Git-Host: gitbox.apache.org X-Git-Repo: ignite-teamcity-bot X-Git-Refname: refs/heads/ignite-10243 X-Git-Reftype: branch X-Git-Oldrev: b8880b1b5d51b0a5266bcaeef7732fabff77acb8 X-Git-Newrev: 13af56c7bc4a664867afa4bd47f010f1c9ed8a45 X-Git-Rev: 13af56c7bc4a664867afa4bd47f010f1c9ed8a45 X-Git-NotificationType: ref_changed_plus_diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated This is an automated email from the ASF dual-hosted git repository. dpavlov pushed a commit to branch ignite-10243 in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git The following commit(s) were added to refs/heads/ignite-10243 by this push: new 13af56c IGNITE-10243 Cancelled runAll display as valid in PRs table 13af56c is described below commit 13af56c7bc4a664867afa4bd47f010f1c9ed8a45 Author: Dmitriy Pavlov AuthorDate: Fri Nov 16 14:53:28 2018 +0300 IGNITE-10243 Cancelled runAll display as valid in PRs table --- .../ignite/ci/tcbot/chain/BuildChainProcessor.java | 4 +- .../ci/tcbot/visa/ContributionCheckStatus.java | 6 ++- .../tcbot/visa/TcBotTriggerAndSignOffService.java | 54 ++++++++++++++-------- .../ci/teamcity/ignited/ITeamcityIgnited.java | 4 +- .../ci/teamcity/ignited/TeamcityIgnitedImpl.java | 10 ++-- .../ignited/IgnitedTcInMemoryIntegrationTest.java | 13 +++--- 6 files changed, 55 insertions(+), 36 deletions(-) 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 280a40e..974f648 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 @@ -288,7 +288,7 @@ public class BuildChainProcessor { final String branch = getBranchOrDefault(buildCompacted.branchName(compactor)); final String buildTypeId = buildCompacted.buildTypeId(compactor); - Stream hist = teamcityIgnited.getBuildHistoryCompacted(buildTypeId, branch) + Stream hist = teamcityIgnited.getAllBuildsCompacted(buildTypeId, branch) .stream() .filter(t -> !t.isCancelled(compactor)) .filter(t -> t.isFinished(compactor)); @@ -320,7 +320,7 @@ public class BuildChainProcessor { protected void fillBuildCounts(MultBuildRunCtx outCtx, ITeamcityIgnited teamcityIgnited, boolean includeScheduledInfo) { if (includeScheduledInfo && !outCtx.hasScheduledBuildsInfo()) { - final List runAllBuilds = teamcityIgnited.getBuildHistoryCompacted(outCtx.buildTypeId(), outCtx.branchName()); + final List runAllBuilds = teamcityIgnited.getAllBuildsCompacted(outCtx.buildTypeId(), outCtx.branchName()); long cntRunning = runAllBuilds .stream() diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionCheckStatus.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionCheckStatus.java index c93b246..62dfc3f 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionCheckStatus.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionCheckStatus.java @@ -25,9 +25,13 @@ import java.util.List; @SuppressWarnings("PublicField") public class ContributionCheckStatus { public int queuedBuilds; public int runningBuilds; - /** Branch with finished run all results, null if run all is running or in case there was no run alls at all. */ + + /** Branch with finished/cancelled run all results, null if run all is running or in case there was no run alls at all. */ public String branchWithFinishedRunAll; + /** Run all finished for brach {@link #branchWithFinishedRunAll}. Determines trigger button color. */ + public Boolean runAllFinished; + /** Resolved run all branch: Some branch probably with finished or queued builds in in, or default pull/nnnn/head. */ public String resolvedBranch; diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java index 8de540d..ab2bc56 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java @@ -41,6 +41,7 @@ import org.apache.ignite.ci.observer.BuildObserver; import org.apache.ignite.ci.tcmodel.hist.BuildRef; import org.apache.ignite.ci.observer.BuildsInfo; import org.apache.ignite.ci.tcmodel.result.Build; +import org.apache.ignite.ci.teamcity.ignited.BuildRefCompacted; import org.apache.ignite.ci.teamcity.ignited.IStringCompactor; import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited; import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnitedProvider; @@ -78,7 +79,7 @@ public class TcBotTriggerAndSignOffService { @Inject private VisasHistoryStorage visasHistoryStorage; /** */ - @Inject IStringCompactor strCompactor; + @Inject IStringCompactor compactor; /** Helper. */ @Inject ITcHelper tcHelper; @@ -310,17 +311,16 @@ public class TcBotTriggerAndSignOffService { }).collect(Collectors.toList()); } - @Nonnull private List findRunAllsForPr(String suiteId, String prId, ITeamcityIgnited server) { + @Nonnull private List findRunAllsForPr(String suiteId, String prId, ITeamcityIgnited srv) { String branchName = branchForTcA(prId); - List buildHist = server.getBuildHistory(suiteId, branchName); + List buildHist = srv.getAllBuildsCompacted(suiteId, branchName); if (!buildHist.isEmpty()) return buildHist; - //todo multibranch requestst - buildHist = server.getBuildHistory(suiteId, branchForTcB(prId)); + buildHist = srv.getAllBuildsCompacted(suiteId, branchForTcB(prId)); if (!buildHist.isEmpty()) return buildHist; @@ -348,29 +348,43 @@ public class TcBotTriggerAndSignOffService { ITeamcityIgnited teamcity = teamcityIgnitedProvider.server(srvId, prov); - List allRunAlls = findRunAllsForPr(suiteId, prId, teamcity); + List allRunAlls = findRunAllsForPr(suiteId, prId, teamcity); - boolean finishedRunAllPresent = allRunAlls.stream().filter(BuildRef::isNotCancelled).anyMatch(BuildRef::isFinished); + List finishedOrCancelled = allRunAlls.stream() + .filter(t -> t.isFinished(compactor)).collect(Collectors.toList()); - status.branchWithFinishedRunAll = finishedRunAllPresent ? allRunAlls.get(0).branchName : null; + if (!finishedOrCancelled.isEmpty()) { + BuildRefCompacted buildRefCompacted = finishedOrCancelled.get(0); - if (status.branchWithFinishedRunAll == null) { - if (!allRunAlls.isEmpty()) - status.resolvedBranch = allRunAlls.get(0).branchName; - else - status.resolvedBranch = branchForTcA(prId); + status.runAllFinished = !buildRefCompacted.isCancelled(compactor); + status.branchWithFinishedRunAll = buildRefCompacted.branchName(compactor); } - else - //todo take into account running/queued + else { + status.branchWithFinishedRunAll = null; + status.runAllFinished = false; + } + + if (status.branchWithFinishedRunAll != null) status.resolvedBranch = status.branchWithFinishedRunAll; + //todo take into account running/queued + else + status.resolvedBranch = !allRunAlls.isEmpty() ? allRunAlls.get(0).branchName(compactor) : branchForTcA(prId); String observationsStatus = observer.get().getObservationStatus(srvId, status.resolvedBranch); status.observationsStatus = Strings.emptyToNull(observationsStatus); - List queuedRunAlls = allRunAlls.stream().filter(BuildRef::isNotCancelled).filter(BuildRef::isQueued).collect(Collectors.toList()); - List runninRunAlls = allRunAlls.stream().filter(BuildRef::isNotCancelled).filter(BuildRef::isRunning).collect(Collectors.toList()); - status.queuedBuilds = queuedRunAlls.size();//todo take into accounts not only run alls: + List queuedRunAlls = allRunAlls.stream() + .filter(t -> t.isNotCancelled(compactor)) + .filter(t -> t.isQueued(compactor)) + .collect(Collectors.toList()); + + List runninRunAlls = allRunAlls.stream() + .filter(t -> t.isNotCancelled(compactor)) + .filter(t -> t.isRunning(compactor)) + .collect(Collectors.toList()); + + status.queuedBuilds = queuedRunAlls.size(); //todo take into accounts not only run alls: status.runningBuilds = runninRunAlls.size(); status.webLinksQueuedRunAlls = Stream.concat(queuedRunAlls.stream(), runninRunAlls.stream()) @@ -384,7 +398,7 @@ public class TcBotTriggerAndSignOffService { * @param teamcity Teamcity. * @param ref Reference. */ - @NotNull public String getWebLinkToQueued(ITeamcityIgnited teamcity, BuildRef ref) { - return teamcity.host() + "viewQueued.html?itemId=" + ref.getId(); + @NotNull public String getWebLinkToQueued(ITeamcityIgnited teamcity, BuildRefCompacted ref) { + return teamcity.host() + "viewQueued.html?itemId=" + ref.id(); } } diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java index 7a4faf4..c6291d8 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java @@ -48,7 +48,7 @@ public interface ITeamcityIgnited { * @param branchName Branch name. * @return list of builds in history, includes all statuses: queued, running, etc */ - public List getBuildHistoryCompacted( + public List getAllBuildsCompacted( @Nullable String buildTypeId, @Nullable String branchName); @@ -59,7 +59,7 @@ public interface ITeamcityIgnited { * @param branchName Branch name. * @return list of builds in history, includes all statuses: queued, running, etc */ - public List getBuildHistory( + public List getAllBuildsHistory( @Nullable String buildTypeId, @Nullable String branchName); diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java index 607f41c..d2ed26d 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java @@ -120,7 +120,7 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited { } /** {@inheritDoc} */ - public List getFinishedBuildsCompacted( + @Override public List getFinishedBuildsCompacted( @Nullable String buildTypeId, @Nullable String branchName, @Nullable Date sinceDate, @@ -130,7 +130,7 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited { final int invalidVal = -3; final int unknownStatus = compactor.getStringId(STATUS_UNKNOWN); - List buildRefs = getBuildHistoryCompacted(buildTypeId, branchName) + List buildRefs = getAllBuildsCompacted(buildTypeId, branchName) .stream().filter(b -> b.status() != unknownStatus).collect(Collectors.toList()); int idSince = 0; @@ -268,7 +268,7 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited { /** {@inheritDoc} */ @AutoProfiling - @Override public List getBuildHistory( + @Override public List getAllBuildsHistory( @Nullable String buildTypeId, @Nullable String branchName) { ensureActualizeRequested(); @@ -282,7 +282,7 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited { /** {@inheritDoc} */ @AutoProfiling - @Override public List getBuildHistoryCompacted( + @Override public List getAllBuildsCompacted( @Nullable String buildTypeId, @Nullable String branchName) { ensureActualizeRequested(); @@ -295,7 +295,7 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited { /** {@inheritDoc} */ @AutoProfiling @Override @NotNull public List getLastNBuildsFromHistory(String btId, String branchForTc, int cnt) { - List hist = getBuildHistoryCompacted(btId, branchForTc); + List hist = getAllBuildsCompacted(btId, branchForTc); List chains = hist.stream() .filter(ref -> !ref.isFakeStub()) diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java index 489cebc..5c2c41a 100644 --- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java +++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java @@ -138,20 +138,21 @@ public class IgnitedTcInMemoryIntegrationTest { }); ITeamcityIgnited srv = injector.getInstance(ITeamcityIgnitedProvider.class).server(APACHE, creds()); + IStringCompactor compactor = injector.getInstance(IStringCompactor.class); String buildTypeId = "IgniteTests24Java8_RunAll"; String branchName = ""; - List hist = srv.getBuildHistory(buildTypeId, branchName); + List hist = srv.getAllBuildsCompacted(buildTypeId, branchName); //todo mult branches including pull/4926/head assertTrue(!hist.isEmpty()); - for (BuildRef h : hist) { + for (BuildRefCompacted h : hist) { System.out.println(h); - assertEquals(buildTypeId, h.suiteId()); + assertEquals(buildTypeId, h.buildTypeId(compactor)); - assertEquals("refs/heads/master", h.branchName()); + assertEquals("refs/heads/master", h.branchName(compactor)); } ignite.cache(STRINGS_CACHE).forEach( @@ -212,7 +213,7 @@ public class IgnitedTcInMemoryIntegrationTest { teamcityIgnited.fullReindex(); String buildTypeId = "IgniteTests24Java8_RunAll"; String branchName = ""; - List statues = srv.getBuildHistory(buildTypeId, branchName).stream().map(BuildRef::state).distinct().collect(Collectors.toList()); + List statues = srv.getAllBuildsHistory(buildTypeId, branchName).stream().map(BuildRef::state).distinct().collect(Collectors.toList()); System.out.println("Before " + statues); for (int i = queuedBuildIdx; i < tcBuilds.size(); i++) @@ -221,7 +222,7 @@ public class IgnitedTcInMemoryIntegrationTest { teamcityIgnited.actualizeRecentBuildRefs(); - List hist = srv.getBuildHistory(buildTypeId, branchName); + List hist = srv.getAllBuildsHistory(buildTypeId, branchName); assertTrue(!hist.isEmpty());