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 2019/01/10 16:48:55 UTC

[ignite-teamcity-bot] branch ignite-gg-14609 updated: IGNITE-GG-14609: Taking branch from PR reference

This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch ignite-gg-14609
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git


The following commit(s) were added to refs/heads/ignite-gg-14609 by this push:
     new 10c9b8b  IGNITE-GG-14609: Taking branch from PR reference
10c9b8b is described below

commit 10c9b8b9b933796b655acb0bdaada6372f4db6d0
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Thu Jan 10 19:48:52 2019 +0300

    IGNITE-GG-14609: Taking branch from PR reference
---
 .../org/apache/ignite/ci/github/GitHubBranch.java  |  6 +++
 .../ci/github/ignited/GitHubConnIgnitedImpl.java   |  5 +-
 .../tcbot/visa/TcBotTriggerAndSignOffService.java  | 58 +++++++++++++++-------
 .../ignite/ci/web/rest/pr/GetPrTestFailures.java   |  1 -
 4 files changed, 48 insertions(+), 22 deletions(-)

diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubBranch.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubBranch.java
index a4b3dea..92d4475 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubBranch.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/GitHubBranch.java
@@ -23,6 +23,7 @@ public class GitHubBranch {
     private String ref;
     private String sha;
 
+    /** {@inheritDoc} */
     @Override public boolean equals(Object o) {
         if (this == o)
             return true;
@@ -34,7 +35,12 @@ public class GitHubBranch {
             Objects.equal(sha, branch.sha);
     }
 
+    /** {@inheritDoc} */
     @Override public int hashCode() {
         return Objects.hashCode(label, ref, sha);
     }
+
+    public String ref() {
+        return ref;
+    }
 }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java
index da8bc03..f3d5c89 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/ignited/GitHubConnIgnitedImpl.java
@@ -36,7 +36,6 @@ import org.apache.ignite.ci.di.MonitoredTask;
 import org.apache.ignite.ci.di.scheduler.IScheduler;
 import org.apache.ignite.ci.github.PullRequest;
 import org.apache.ignite.ci.github.pure.IGitHubConnection;
-import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
 import org.jetbrains.annotations.NotNull;
 
 /**
@@ -167,14 +166,14 @@ class GitHubConnIgnitedImpl implements IGitHubConnIgnited {
     @SuppressWarnings({"WeakerAccess", "UnusedReturnValue"})
     @MonitoredTask(name = "Check Outdated PRs(srv)", nameExtArgsIndexes = {0})
     protected String refreshOutdatedPrs(String srvId, Set<Integer> actualPrs) {
-        final long count = StreamSupport.stream(prCache.spliterator(), false)
+        final long cnt = StreamSupport.stream(prCache.spliterator(), false)
                 .filter(entry -> entry.getKey() >> 32 == srvIdMaskHigh)
                 .filter(entry -> PullRequest.OPEN.equals(entry.getValue().getState()))
                 .filter(entry -> !actualPrs.contains(entry.getValue().getNumber()))
                 .peek(entry -> prCache.put(entry.getKey(), conn.getPullRequest(entry.getValue().getNumber())))
                 .count();
 
-        return "PRs updated for " + srvId + ": " + count + " from " + prCache.size();
+        return "PRs updated for " + srvId + ": " + cnt + " from " + prCache.size();
     }
 
     private int saveChunk(List<PullRequest> ghData) {
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 41f15b2..29a087e 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
@@ -36,8 +36,10 @@ import javax.ws.rs.QueryParam;
 import org.apache.ignite.ci.HelperConfig;
 import org.apache.ignite.ci.ITcHelper;
 import org.apache.ignite.ci.ITeamcity;
+import org.apache.ignite.ci.github.GitHubBranch;
 import org.apache.ignite.ci.github.GitHubUser;
 import org.apache.ignite.ci.github.PullRequest;
+import org.apache.ignite.ci.github.ignited.IGitHubConnIgnited;
 import org.apache.ignite.ci.github.ignited.IGitHubConnIgnitedProvider;
 import org.apache.ignite.ci.github.pure.IGitHubConnection;
 import org.apache.ignite.ci.github.pure.IGitHubConnectionProvider;
@@ -69,7 +71,6 @@ import org.jetbrains.annotations.Nullable;
 import static org.apache.ignite.ci.observer.BuildsInfo.CANCELLED_STATUS;
 import static org.apache.ignite.ci.observer.BuildsInfo.FINISHED_STATUS;
 import static org.apache.ignite.ci.observer.BuildsInfo.RUNNING_STATUS;
-import static org.apache.ignite.ci.teamcity.ignited.TeamcityIgnitedImpl.DEFAULT_PROJECT_ID;
 import static org.apache.ignite.ci.web.rest.parms.FullQueryParams.DEFAULT_TRACKED_BRANCH_NAME;
 
 /**
@@ -83,23 +84,21 @@ public class TcBotTriggerAndSignOffService {
         }
     };
 
+    /** Build observer provider. */
     @Inject Provider<BuildObserver> buildObserverProvider;
 
-    /** Git hub pure http connection provider. */
-    @Inject IGitHubConnectionProvider gitHubConnectionProvider;
+    /** GitHub (pure) HTTP connection provider. */
+    @Inject IGitHubConnectionProvider gitHubConnProvider;
 
-    /** Git hub connection ignited provider. */
+    /** GitHub connection ignited provider. */
     @Inject IGitHubConnIgnitedProvider gitHubConnIgnitedProvider;
 
+    /** TC ignited provider. */
     @Inject ITeamcityIgnitedProvider tcIgnitedProv;
 
     /** */
     @Inject IJiraIntegrationProvider jiraIntegrationProvider;
 
-    @Inject ITeamcityIgnitedProvider teamcityIgnitedProvider;
-
-    @Inject Provider<BuildObserver> observer;
-
     /** */
     @Inject private VisasHistoryStorage visasHistoryStorage;
 
@@ -180,7 +179,7 @@ public class TcBotTriggerAndSignOffService {
      * @return Mutes for given server-project pair.
      */
     public Set<MuteInfo> getMutes(String srvId, String projectId, ICredentialsProv creds) {
-        ITeamcityIgnited ignited = teamcityIgnitedProvider.server(srvId, creds);
+        ITeamcityIgnited ignited = tcIgnitedProv.server(srvId, creds);
 
         Set<MuteInfo> infos = ignited.getMutes(projectId, creds);
 
@@ -254,7 +253,7 @@ public class TcBotTriggerAndSignOffService {
     ) {
         if (F.isEmpty(ticketFullName)) {
             try {
-                IGitHubConnection gitHubConn = gitHubConnectionProvider.server(srvId);
+                IGitHubConnection gitHubConn = gitHubConnProvider.server(srvId);
 
                 PullRequest pr = gitHubConn.getPullRequest(branchForTc);
 
@@ -305,7 +304,7 @@ public class TcBotTriggerAndSignOffService {
 
         if (Strings.isNullOrEmpty(ticketFullName)) {
             try {
-                IGitHubConnection gitHubConn = gitHubConnectionProvider.server(srvId);
+                IGitHubConnection gitHubConn = gitHubConnProvider.server(srvId);
                 PullRequest pr = gitHubConn.getPullRequest(branchForTc);
 
                 ticketFullName = getTicketFullName(pr);
@@ -382,10 +381,9 @@ public class TcBotTriggerAndSignOffService {
         }).collect(Collectors.toList());
     }
 
-    @Nonnull private List<BuildRefCompacted> findBuildsForPr(String suiteId, String prId, ITeamcityIgnited srv) {
-
-        String branchName = branchForTcA(prId);
-        List<BuildRefCompacted> buildHist = srv.getAllBuildsCompacted(suiteId, branchName);
+    @Nonnull private List<BuildRefCompacted> findBuildsForPr(String suiteId, String prId,
+        IGitHubConnIgnited ghConn, ITeamcityIgnited srv) {
+        List<BuildRefCompacted> buildHist = srv.getAllBuildsCompacted(suiteId, branchForTcA(prId));
 
         if (!buildHist.isEmpty())
             return buildHist;
@@ -395,6 +393,28 @@ public class TcBotTriggerAndSignOffService {
         if (!buildHist.isEmpty())
             return buildHist;
 
+        PullRequest pr = ghConn.getPullRequest(Integer.valueOf(prId));
+
+        if (pr != null) {
+            GitHubBranch head = pr.head();
+
+            if (head != null) {
+                String ref = head.ref();
+
+                buildHist = srv.getAllBuildsCompacted(suiteId, ref);
+
+                if (!buildHist.isEmpty())
+                    return buildHist;
+
+                ref = ref.toLowerCase();
+
+                buildHist = srv.getAllBuildsCompacted(suiteId, ref);
+
+                if (!buildHist.isEmpty())
+                    return buildHist;
+            }
+        }
+
         return Collections.emptyList();
     }
 
@@ -415,7 +435,9 @@ public class TcBotTriggerAndSignOffService {
         String prId) {
         Set<ContributionCheckStatus> statuses = new LinkedHashSet<>();
 
-        ITeamcityIgnited teamcity = teamcityIgnitedProvider.server(srvId, prov);
+        ITeamcityIgnited teamcity = tcIgnitedProv.server(srvId, prov);
+
+        IGitHubConnIgnited ghConn = gitHubConnIgnitedProvider.server(srvId);
 
         StringBuilder buildTypeId = new StringBuilder();
 
@@ -450,7 +472,7 @@ public class TcBotTriggerAndSignOffService {
 
 
         for (String btId : compositeBuildTypeIds) {
-            List<BuildRefCompacted> forTests = findBuildsForPr(btId, prId, teamcity);
+            List<BuildRefCompacted> forTests = findBuildsForPr(btId, prId, ghConn, teamcity);
 
             statuses.add(forTests.isEmpty() ? new ContributionCheckStatus(btId, branchForTcA(prId)) :
                 contributionStatus(srvId, btId, forTests, teamcity, prId));
@@ -490,7 +512,7 @@ public class TcBotTriggerAndSignOffService {
         else
             status.resolvedBranch = !builds.isEmpty() ? builds.get(0).branchName(compactor) : branchForTcA(prId);
 
-        String observationsStatus = observer.get().getObservationStatus(new ContributionKey(srvId, status.resolvedBranch));
+        String observationsStatus = buildObserverProvider.get().getObservationStatus(new ContributionKey(srvId, status.resolvedBranch));
 
         status.observationsStatus  = Strings.emptyToNull(observationsStatus);
 
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/pr/GetPrTestFailures.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/pr/GetPrTestFailures.java
index a6eeb28..c327a25 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/pr/GetPrTestFailures.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/pr/GetPrTestFailures.java
@@ -137,7 +137,6 @@ public class GetPrTestFailures {
             return "Given branch is not a pull request. Notify works only for pull requests.";
 
         final Injector injector = CtxListener.getInjector(ctx);
-        final ICredentialsProv creds = ICredentialsProv.get(req);
         final IGitHubConnection srv = injector.getInstance(IGitHubConnectionProvider.class).server(srvId);
 
         PullRequest pr;