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 76692ec Observation and triggering status is shown
76692ec is described below
commit 76692ec552291ca18b62dd519824310bb10b9d3d
Author: Dmitriy Pavlov <[email protected]>
AuthorDate: Thu Oct 11 16:04:39 2018 +0300
Observation and triggering status is shown
---
.../apache/ignite/ci/observer/BuildObserver.java | 23 ++++++++++++++++++++++
.../org/apache/ignite/ci/observer/BuildsInfo.java | 8 ++++----
.../ci/tcbot/visa/ContributionCheckStatus.java | 3 +++
.../tcbot/visa/TcBotTriggerAndSignOffService.java | 7 ++++++-
ignite-tc-helper-web/src/main/webapp/js/prs-1.0.js | 15 ++++++++++++++
5 files changed, 51 insertions(+), 5 deletions(-)
diff --git
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildObserver.java
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildObserver.java
index a6d302f..f8a7ac3 100644
---
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildObserver.java
+++
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildObserver.java
@@ -17,6 +17,8 @@
package org.apache.ignite.ci.observer;
+import java.util.Objects;
+import java.util.Queue;
import java.util.Timer;
import javax.inject.Inject;
import org.apache.ignite.ci.tcmodel.result.Build;
@@ -61,4 +63,25 @@ public class BuildObserver {
public void observe(String srvId, ICredentialsProv prov, String ticket,
Build... builds) {
observerTask.builds.add(new BuildsInfo(srvId, prov, ticket, builds));
}
+
+ /**
+ * @param srvId Server id.
+ * @param branch Branch.
+ */
+ public String getObservationStatus(String srvId, String branch) {
+ StringBuilder sb = new StringBuilder();
+ Queue<BuildsInfo> builds = observerTask.builds;
+
+ for (BuildsInfo bi : builds) {
+ if (Objects.equals(bi.branchName, branch)
+ && Objects.equals(bi.srvId, srvId)) {
+ sb.append(bi.ticket).append(" to be commented, waiting for
builds. ");
+ sb.append(bi.finishedBuildsCount());
+ sb.append(" builds done from ");
+ sb.append(bi.buildsCount());
+ }
+ }
+
+ return sb.toString();
+ }
}
diff --git
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildsInfo.java
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildsInfo.java
index 2dd3060..e318f19 100644
---
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildsInfo.java
+++
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildsInfo.java
@@ -24,10 +24,10 @@ import org.apache.ignite.ci.IAnalyticsEnabledTeamcity;
import org.apache.ignite.ci.tcmodel.result.Build;
import org.apache.ignite.ci.user.ICredentialsProv;
+/**
+ *
+ */
public class BuildsInfo {
- /** Finished. */
- public static final String FINISHED = "finished";
-
/** Server id. */
public final String srvId;
@@ -70,7 +70,7 @@ public class BuildsInfo {
for (Map.Entry<Build, Boolean> entry : finishedBuilds.entrySet()) {
if (!entry.getValue()) {
Build build = teamcity.getBuild(entry.getKey().getId());
- entry.setValue(build.state.equals(FINISHED));
+ entry.setValue(build.isFinished());
}
}
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 55b0c3f..518cdff 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
@@ -27,4 +27,7 @@ package org.apache.ignite.ci.tcbot.visa;
/** Resolved run all branch: Some branch probably with finished or queued
builds in in, or default pull/nnnn/head. */
public String resolvedBranch;
+
+ /** Observations status: Filled if build observer has something sheduled
related to {@link #resolvedBranch} */
+ public String observationsStatus;
}
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 2a263d2..193b3e5 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
@@ -61,6 +61,8 @@ public class TcBotTriggerAndSignOffService {
@Inject ITeamcityIgnitedProvider teamcityIgnitedProvider;
+ @Inject Provider<BuildObserver> observer;
+
/**
* @param pr Pull Request.
* @return JIRA ticket full name or empty string.
@@ -148,7 +150,7 @@ public class TcBotTriggerAndSignOffService {
ticketFullName =
ticketFullName.toUpperCase().startsWith("IGNITE-") ? ticketFullName : "IGNITE-"
+ ticketFullName;
}
- buildObserverProvider.get().observe(srvId, prov, "ignite-" +
ticketFullName, builds);
+ buildObserverProvider.get().observe(srvId, prov, ticketFullName,
builds);
return "JIRA ticket IGNITE-" + ticketFullName + " will be notified
after the tests are completed.";
}
@@ -278,6 +280,9 @@ public class TcBotTriggerAndSignOffService {
//todo take into account running/queued
status.resolvedBranch = status.branchWithFinishedRunAll;
+ String observationsStatus = observer.get().getObservationStatus(srvId,
status.resolvedBranch);
+
+ status.observationsStatus = Strings.emptyToNull(observationsStatus);
//todo take into accounts not only run alls:
status.queuedBuilds =
(int)allRunAlls.stream().filter(BuildRef::isNotCancelled).filter(BuildRef::isQueued).count();
diff --git a/ignite-tc-helper-web/src/main/webapp/js/prs-1.0.js
b/ignite-tc-helper-web/src/main/webapp/js/prs-1.0.js
index 0779358..e6fb4fe 100644
--- a/ignite-tc-helper-web/src/main/webapp/js/prs-1.0.js
+++ b/ignite-tc-helper-web/src/main/webapp/js/prs-1.0.js
@@ -123,6 +123,13 @@ function showContributionsTable(result, srvId, suiteId) {
});
}
+function showWaitingResults(stageNum, prId, text) {
+ let stageOneStatus = $('#visaStage_' + stageNum + '_' + prId);
+ stageOneStatus.css('background', 'darkorange');
+ stageOneStatus.attr("title", text);
+ stageOneStatus.html("⏳");
+}
+
function showStageResult(stageNum, prId, passed, failed) {
let stageOneStatus = $('#visaStage_' + stageNum + '_' + prId);
let html;
@@ -235,6 +242,14 @@ function showContributionStatus(status, prId, row, srvId,
suiteId) {
let noNeedToTrigger = hasQueued || buildIsCompleted;
showStageResult(2, prId, noNeedToTrigger, false);
showStageResult(3, prId, buildIsCompleted, false);
+ if(hasQueued) {
+ showWaitingResults(3, prId, "Has queued builds: " +
status.queuedBuilds + " queued " + " ");
+
+ }
+
+ if(isDefinedAndFilled(status.observationsStatus)) {
+ showWaitingResults(4, prId, status.observationsStatus);
+ }
if (isDefinedAndFilled(status.resolvedBranch)) {
var jiraOptional = hasJiraIssue ? row.jiraIssueId : "";