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

commit 5966c69ca8cbe12f67306a97ad13ceb25ad5b23b
Author: Dmitrii Ryabov <[email protected]>
AuthorDate: Mon Sep 17 19:52:47 2018 +0300

    Different input possibilities. - Fixes #11.
    
    Signed-off-by: Dmitriy Pavlov <[email protected]>
---
 .../main/java/org/apache/ignite/ci/TcHelper.java   |  7 +++-
 .../apache/ignite/ci/observer/ObserverTask.java    |  2 +-
 .../apache/ignite/ci/web/rest/TriggerBuild.java    | 13 +++---
 .../ci/web/rest/monitoring/MonitoringService.java  |  1 -
 ignite-tc-helper-web/src/main/webapp/services.html | 46 +++++++++++++++++-----
 5 files changed, 49 insertions(+), 20 deletions(-)

diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java
index 02da6ca..641c9db 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/TcHelper.java
@@ -180,6 +180,10 @@ public class TcHelper implements ITcHelper {
     ) {
         try (IAnalyticsEnabledTeamcity teamcity = server(srvId, prov)) {
             List<BuildRef> builds = 
teamcity.getFinishedBuildsIncludeSnDepFailed(buildTypeId, branchForTc);
+
+            if (builds.isEmpty())
+                return false;
+
             BuildRef build = builds.get(builds.size() - 1);
             String comment;
 
@@ -193,9 +197,8 @@ public class TcHelper implements ITcHelper {
                 return false;
             }
 
-            if ("finished".equals(build.state)) {
+            if ("finished".equals(build.state))
                 return teamcity.sendJiraComment(ticket, comment);
-            }
 
             return false;
         }
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/ObserverTask.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/ObserverTask.java
index aa3c2f5..fcc1e86 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/ObserverTask.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/ObserverTask.java
@@ -48,7 +48,7 @@ public class ObserverTask extends TimerTask {
             try (IAnalyticsEnabledTeamcity teamcity = 
helper.server(info.srvId, info.prov)) {
                 Build build = teamcity.getBuild(info.build.getId());
 
-                if (!build.state.equals("finished"))
+                if (!"finished".equals(build.state))
                     continue;
             }
 
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuild.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuild.java
index 19077f9..e844300 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuild.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/TriggerBuild.java
@@ -36,6 +36,7 @@ import org.apache.ignite.ci.user.ICredentialsProv;
 import org.apache.ignite.ci.web.CtxListener;
 import org.apache.ignite.ci.web.rest.login.ServiceUnauthorizedException;
 import org.apache.ignite.ci.web.model.SimpleResult;
+import org.apache.ignite.internal.util.typedef.F;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -73,7 +74,7 @@ public class TriggerBuild {
                 jiraRes = observeJira(srvId, branchForTc, ticketId, helper, 
teamcity, build, prov);
         }
 
-        return new SimpleResult("Tests started." + (!jiraRes.equals("") ? 
"<br>" + jiraRes : ""));
+        return new SimpleResult("Tests started." + (!jiraRes.isEmpty() ? 
"<br>" + jiraRes : ""));
     }
 
     @GET
@@ -112,7 +113,7 @@ public class TriggerBuild {
 
                 ticketId = getTicketId(pr);
 
-                if (ticketId.equals("")) {
+                if (ticketId.isEmpty()) {
                     jiraRes = "JIRA ticket can't be commented - " +
                         "PR title \"" + pr.getTitle() + "\" should starts with 
\"IGNITE-XXXX\"." +
                         " Please, rename PR according to the" +
@@ -124,10 +125,10 @@ public class TriggerBuild {
         }
 
         if (helper.notifyJira(srvId, prov, suiteId, branchForTc, "ignite-" + 
ticketId))
-            return new SimpleResult("JIRA commented." + (!jiraRes.equals("") ? 
jiraRes : ""));
+            return new SimpleResult("JIRA commented." + (!jiraRes.isEmpty() ? 
jiraRes : ""));
         else
             // TODO Write catched exceptions to the response.
-            return new SimpleResult("JIRA wasn't commented." + 
(!jiraRes.equals("") ? "<br>" + jiraRes : ""));
+            return new SimpleResult("JIRA wasn't commented." + 
(!jiraRes.isEmpty() ? "<br>" + jiraRes : ""));
     }
 
     /**
@@ -149,12 +150,12 @@ public class TriggerBuild {
         Build build,
         ICredentialsProv prov
     ) {
-        if (ticketId == null || ticketId.equals("")) {
+        if (F.isEmpty(ticketId)) {
             PullRequest pr = teamcity.getPullRequest(branchForTc);
 
             ticketId = getTicketId(pr);
 
-            if (ticketId.equals("")) {
+            if (ticketId.isEmpty()) {
                 return "JIRA ticket will not be notified after the tests are 
completed - " +
                     "PR title \"" + pr.getTitle() + "\" should starts with 
\"IGNITE-XXXX\"." +
                     " Please, rename PR according to the" +
diff --git 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/monitoring/MonitoringService.java
 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/monitoring/MonitoringService.java
index fa19e93..0a25b7b 100644
--- 
a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/monitoring/MonitoringService.java
+++ 
b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/monitoring/MonitoringService.java
@@ -29,7 +29,6 @@ import javax.ws.rs.core.MediaType;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.atomic.AtomicLong;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
diff --git a/ignite-tc-helper-web/src/main/webapp/services.html 
b/ignite-tc-helper-web/src/main/webapp/services.html
index 443f2e3..839ff3d 100644
--- a/ignite-tc-helper-web/src/main/webapp/services.html
+++ b/ignite-tc-helper-web/src/main/webapp/services.html
@@ -56,7 +56,7 @@ function showSuitesForTeamCityRunData(result) {
         res += "Server: <input type='text' name='serverId' value='" + 
chainAtServer.serverId + "' readonly>";
         res += "Chain: <input type='text' name='suiteId' value='" + 
chainAtServer.suiteId + "' readonly>";
         res += "Branch: <input type='text' name='branchForTc' required> ";
-        res += "Ticket#: <input type='text' name='ticketId'>";
+        res += "Ticket: <input type='text' name='ticketId'>";
         res += "<button name='jira' type='button' 
onclick='trigBuild(\"tests\")'>Start tests</button>";
         res += "<button name='jira' onclick='trigBuild(\"tests+jira\")'>Start 
tests and comment JIRA ticket on ready</button>";
         //res += "<button name='git' onclick='trigBuild(\"tests+jira\")'>Start 
tests and comment GitHub PR on ready</button>";
@@ -86,7 +86,7 @@ function showCommentJiraForm(result) {
         res += "Server: <input type='text' name='serverId' value=" + 
chainAtServer.serverId +" readonly>" ;
         res += "Chain: <input type='text' name='suiteId' value='" + 
chainAtServer.suiteId + "' readonly>";
         res += "Branch: <input type='text' name='branchForTc' required> ";
-        res += "Ticket #<input type='text' name='ticketId'> ";
+        res += "Ticket: <input type='text' name='ticketId'> ";
         res += "<button name='action' onclick='notifyJira()'>Notify</button>";
     }
 
@@ -102,10 +102,10 @@ function trigBuild(trigCase) {
 
     var srvId = fields.namedItem("serverId").value;
     var suiteId = fields.namedItem("suiteId").value;
-    var branchName = fields.namedItem("branchForTc").value;
-    var ticketId = fields.namedItem("ticketId").value;
+    var branchName = branchForTc(fields.namedItem("branchForTc").value);
+    var ticketId = jiraTicketNumber(fields.namedItem("ticketId").value);
 
-    triggerBuild(srvId, suiteId, branchName, false, trigCase != "tests", 
ticketId)
+    triggerBuild(srvId, suiteId, branchName, false, trigCase !== "tests", 
ticketId)
 }
 
 /**
@@ -116,14 +116,43 @@ function notifyJira() {
 
     var srvId = fields.namedItem("serverId").value;
     var suiteId = fields.namedItem("suiteId").value;
-    var branchName = fields.namedItem("branchForTc").value;
-    var ticketId = fields.namedItem("ticketId").value;
+    var branchName = branchForTc(fields.namedItem("branchForTc").value);
+    var ticketId = jiraTicketNumber(fields.namedItem("ticketId").value);
 
     commentJira(srvId, suiteId, branchName, ticketId)
 }
+
+/**
+ * Converts PR number to branch for TeamCity.
+ *
+ * @param pr - Pull Request number.
+ * @returns {String} Branch for TeamCity.
+ */
+function branchForTc(pr) {
+    var regExpr = /(\d*)/i;
+
+    if (regExpr.exec(pr)[0] === pr)
+        return "pull/" + regExpr.exec(pr)[0] + "/head";
+
+    return pr;
+}
+
+/**
+ * Converts JIRA ticket full name to the tickets number.
+ *
+ * @param ticket - JIRA ticket.
+ * @returns {string} JIRA ticket number.
+ */
+function jiraTicketNumber(ticket) {
+    var regExpr = /(ignite-)?(\d*)/i;
+
+    return regExpr.exec(ticket)[2];
+}
     </script>
 </head>
 <body>
+<div id="loadStatus"></div>
+<div><a href=".">Home</a><br></div>
 
 TeamCity Run All:   <br>
 <div id="suitesForRunAll"></div>
@@ -141,9 +170,6 @@ Notify JIRA:   <br>
     </form>
 </div>
 <br>-->
-<div id="loadStatus"></div>
-<div><a href=".">Home</a><br></div>
-<div id="divFailures"></div>
 
 <div id="version"></div>
 

Reply via email to