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 <dpav...@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;