You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by GitBox <gi...@apache.org> on 2018/09/17 17:07:46 UTC

[GitHub] asfgit closed pull request #11: IGNITE-9617 Different input possibilities for services page

asfgit closed pull request #11: IGNITE-9617 Different input possibilities for services page
URL: https://github.com/apache/ignite-teamcity-bot/pull/11
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

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 @@ private BranchesTracked getTrackedBranches() {
     ) {
         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 @@ private BranchesTracked getTrackedBranches() {
                 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 @@
             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.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 SimpleResult 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 SimpleResult commentJiraEx(@QueryParam("serverId") @Nullable String srvId
 
                 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 SimpleResult commentJiraEx(@QueryParam("serverId") @Nullable String srvId
         }
 
         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 @@ private String observeJira(
         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/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 @@
         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 @@
         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 @@
 
     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 @@
 
     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 @@
     </form>
 </div>
 <br>-->
-<div id="loadStatus"></div>
-<div><a href=".">Home</a><br></div>
-<div id="divFailures"></div>
 
 <div id="version"></div>
 


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services