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;