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/11/16 11:53:30 UTC
[ignite-teamcity-bot] branch ignite-10243 updated: IGNITE-10243
Cancelled runAll display as valid in PRs table
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 <dp...@apache.org>
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<BuildRefCompacted> hist = teamcityIgnited.getBuildHistoryCompacted(buildTypeId, branch)
+ Stream<BuildRefCompacted> 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<BuildRefCompacted> runAllBuilds = teamcityIgnited.getBuildHistoryCompacted(outCtx.buildTypeId(), outCtx.branchName());
+ final List<BuildRefCompacted> 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<BuildRef> findRunAllsForPr(String suiteId, String prId, ITeamcityIgnited server) {
+ @Nonnull private List<BuildRefCompacted> findRunAllsForPr(String suiteId, String prId, ITeamcityIgnited srv) {
String branchName = branchForTcA(prId);
- List<BuildRef> buildHist = server.getBuildHistory(suiteId, branchName);
+ List<BuildRefCompacted> 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<BuildRef> allRunAlls = findRunAllsForPr(suiteId, prId, teamcity);
+ List<BuildRefCompacted> allRunAlls = findRunAllsForPr(suiteId, prId, teamcity);
- boolean finishedRunAllPresent = allRunAlls.stream().filter(BuildRef::isNotCancelled).anyMatch(BuildRef::isFinished);
+ List<BuildRefCompacted> 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<BuildRef> queuedRunAlls = allRunAlls.stream().filter(BuildRef::isNotCancelled).filter(BuildRef::isQueued).collect(Collectors.toList());
- List<BuildRef> 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<BuildRefCompacted> queuedRunAlls = allRunAlls.stream()
+ .filter(t -> t.isNotCancelled(compactor))
+ .filter(t -> t.isQueued(compactor))
+ .collect(Collectors.toList());
+
+ List<BuildRefCompacted> 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<BuildRefCompacted> getBuildHistoryCompacted(
+ public List<BuildRefCompacted> 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<BuildRef> getBuildHistory(
+ public List<BuildRef> 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<BuildRefCompacted> getFinishedBuildsCompacted(
+ @Override public List<BuildRefCompacted> 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<BuildRefCompacted> buildRefs = getBuildHistoryCompacted(buildTypeId, branchName)
+ List<BuildRefCompacted> 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<BuildRef> getBuildHistory(
+ @Override public List<BuildRef> getAllBuildsHistory(
@Nullable String buildTypeId,
@Nullable String branchName) {
ensureActualizeRequested();
@@ -282,7 +282,7 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited {
/** {@inheritDoc} */
@AutoProfiling
- @Override public List<BuildRefCompacted> getBuildHistoryCompacted(
+ @Override public List<BuildRefCompacted> getAllBuildsCompacted(
@Nullable String buildTypeId,
@Nullable String branchName) {
ensureActualizeRequested();
@@ -295,7 +295,7 @@ public class TeamcityIgnitedImpl implements ITeamcityIgnited {
/** {@inheritDoc} */
@AutoProfiling
@Override @NotNull public List<Integer> getLastNBuildsFromHistory(String btId, String branchForTc, int cnt) {
- List<BuildRefCompacted> hist = getBuildHistoryCompacted(btId, branchForTc);
+ List<BuildRefCompacted> hist = getAllBuildsCompacted(btId, branchForTc);
List<Integer> 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 = "<default>";
- List<BuildRef> hist = srv.getBuildHistory(buildTypeId, branchName);
+ List<BuildRefCompacted> 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 = "<default>";
- List<String> statues = srv.getBuildHistory(buildTypeId, branchName).stream().map(BuildRef::state).distinct().collect(Collectors.toList());
+ List<String> 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<BuildRef> hist = srv.getBuildHistory(buildTypeId, branchName);
+ List<BuildRef> hist = srv.getAllBuildsHistory(buildTypeId, branchName);
assertTrue(!hist.isEmpty());