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/04/13 17:14:29 UTC
[ignite-teamcity-bot] branch ignite-11740 updated: IGNITE-11740:
Add search for full branch name in contributions table,
add mode branch preffered
This is an automated email from the ASF dual-hosted git repository.
dpavlov pushed a commit to branch ignite-11740
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git
The following commit(s) were added to refs/heads/ignite-11740 by this push:
new 78dbd82 IGNITE-11740: Add search for full branch name in contributions table, add mode branch preffered
78dbd82 is described below
commit 78dbd82cf32424e597112b3b282f1d6d06387eca
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Sat Apr 13 20:14:23 2019 +0300
IGNITE-11740: Add search for full branch name in contributions table, add mode branch preffered
---
.../ignite/ci/tcbot/visa/ContributionToCheck.java | 5 +-
.../tcbot/visa/TcBotTriggerAndSignOffService.java | 77 ++++++++++++----------
2 files changed, 48 insertions(+), 34 deletions(-)
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionToCheck.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionToCheck.java
index c4e1859..ecfcb5b 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionToCheck.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionToCheck.java
@@ -41,7 +41,10 @@ package org.apache.ignite.ci.tcbot.visa;
/** Pr head commit hash (first 7 hexes). */
public String prHeadCommit;
- /** Branch Name for team city */
+ /**
+ * Branch Name for Team City. Always a branch for PR_less contribution,
+ * for PRs filled only if there are builds found for TC.
+ */
public String tcBranchName;
/** JIRA issue without server URL, but with project name */
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 d661891..1a5215f 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
@@ -356,47 +356,58 @@ public class TcBotTriggerAndSignOffService {
IJiraIgnited jiraIntegration = jiraIgnProv.server(srvCodeOrAlias);
IGitHubConnIgnited gitHubConnIgnited = gitHubConnIgnitedProvider.server(srvCodeOrAlias);
- List<PullRequest> requests = gitHubConnIgnited.getPullRequests();
- if (requests == null)
- return null;
- Set<Ticket> tickets = jiraIntegration.getTickets();
+ ITeamcityIgnited tcIgn = tcIgnitedProv.server(srvCodeOrAlias, credsProv);
- List<String> branches = gitHubConnIgnited.getBranches();
+ List<PullRequest> prs = gitHubConnIgnited.getPullRequests();
- List<Ticket> activeTickets = tickets.stream().filter(Ticket::isActiveContribution).collect(Collectors.toList());
+ Set<Ticket> tickets = jiraIntegration.getTickets();
IJiraServerConfig jiraCfg = jiraIntegration.config();
IGitHubConfig ghCfg = gitHubConnIgnited.config();
- List<ContributionToCheck> contribsList = requests.stream().map(pr -> {
- ContributionToCheck check = new ContributionToCheck();
- check.prNumber = pr.getNumber();
- check.prTitle = pr.getTitle();
- check.prHtmlUrl = pr.htmlUrl();
- check.prHeadCommit = pr.lastCommitShaShort();
- check.prTimeUpdate = pr.getTimeUpdate();
-
- GitHubUser user = pr.gitHubUser();
- if (user != null) {
- check.prAuthor = user.login();
- check.prAuthorAvatarUrl = user.avatarUrl();
- }
- else {
- check.prAuthor = "";
- check.prAuthorAvatarUrl = "";
- }
+ String defBtForTcServ = findDefaultBuildType(srvCodeOrAlias);
- check.jiraIssueId = ticketMatcher.resolveTicketIdForPrBasedContrib(tickets, pr, jiraCfg);
+ List<ContributionToCheck> contribsList = new ArrayList<>();
- if (!Strings.isNullOrEmpty(check.jiraIssueId)
- && jiraCfg.getUrl() != null)
- check.jiraIssueUrl = jiraIntegration.generateTicketUrl(check.jiraIssueId);
+ if (prs != null) {
+ prs.forEach(pr -> {
+ ContributionToCheck c = new ContributionToCheck();
- return check;
- }).collect(Collectors.toList());
+ c.prNumber = pr.getNumber();
+ c.prTitle = pr.getTitle();
+ c.prHtmlUrl = pr.htmlUrl();
+ c.prHeadCommit = pr.lastCommitShaShort();
+ c.prTimeUpdate = pr.getTimeUpdate();
- ITeamcityIgnited tcIgn = tcIgnitedProv.server(srvCodeOrAlias, credsProv);
+ GitHubUser user = pr.gitHubUser();
+ if (user != null) {
+ c.prAuthor = user.login();
+ c.prAuthorAvatarUrl = user.avatarUrl();
+ } else {
+ c.prAuthor = "";
+ c.prAuthorAvatarUrl = "";
+ }
+
+ c.jiraIssueId = ticketMatcher.resolveTicketIdForPrBasedContrib(tickets, pr, jiraCfg);
+
+ if (!Strings.isNullOrEmpty(c.jiraIssueId)
+ && jiraCfg.getUrl() != null)
+ c.jiraIssueUrl = jiraIntegration.generateTicketUrl(c.jiraIssueId);
+
+ findBuildsForPr(defBtForTcServ, Integer.toString(pr.getNumber()), gitHubConnIgnited, tcIgn)
+ .stream()
+ .map(buildRefCompacted -> buildRefCompacted.branchName(compactor))
+ .findAny()
+ .ifPresent(bName -> c.tcBranchName = bName);
+
+ contribsList.add(c);
+ });
+ }
+
+ List<String> branches = gitHubConnIgnited.getBranches();
+
+ List<Ticket> activeTickets = tickets.stream().filter(Ticket::isActiveContribution).collect(Collectors.toList());
activeTickets.forEach(ticket -> {
String branch = ticketMatcher.resolveTcBranchForPrLess(ticket,
@@ -406,10 +417,9 @@ public class TcBotTriggerAndSignOffService {
if (Strings.isNullOrEmpty(branch))
return; // nothing to do if branch was not resolved
- String defBtForMaster = findDefaultBuildType(srvCodeOrAlias);
if (!branches.contains(branch)
- && tcIgn.getAllBuildsCompacted(defBtForMaster, branch).isEmpty())
+ && tcIgn.getAllBuildsCompacted(defBtForTcServ, branch).isEmpty())
return; //Skipping contributions without builds
ContributionToCheck contribution = new ContributionToCheck();
@@ -592,7 +602,8 @@ public class TcBotTriggerAndSignOffService {
* @param srvIdOrAlias Server id. May be weak reference to TC
* @return Some build type included into tracked branches with default branch.
*/
- @NotNull public String findDefaultBuildType(String srvIdOrAlias) {
+ @NotNull
+ private String findDefaultBuildType(String srvIdOrAlias) {
StringBuilder buildTypeId = new StringBuilder();
ITcServerConfig tcCfg = cfg.getTeamcityConfig(srvIdOrAlias);