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

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


The following commit(s) were added to refs/heads/master by this push:
     new 85d160a  Fix default baseline selection: base branch should be taken 
from TC aliased service (not root).
85d160a is described below

commit 85d160a1c953e400a2e9c3be3ba572960fa94a8a
Author: Dmitriy Pavlov <[email protected]>
AuthorDate: Thu Jul 25 18:18:16 2019 +0300

    Fix default baseline selection: base branch should be taken from TC aliased 
service (not root).
---
 .../tcbot/visa/TcBotTriggerAndSignOffService.java  | 13 +++++-----
 .../ignite/tcbot/engine/pr/PrChainsProcessor.java  | 30 ++++++++++++++--------
 2 files changed, 25 insertions(+), 18 deletions(-)

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 9917e6b..7fc19f9 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
@@ -65,7 +65,6 @@ import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
 import org.apache.ignite.tcbot.engine.conf.ITcBotConfig;
 import org.apache.ignite.tcbot.engine.pr.BranchTicketMatcher;
 import org.apache.ignite.tcbot.engine.pr.PrChainsProcessor;
-import org.apache.ignite.tcbot.engine.ui.DsHistoryStatUi;
 import org.apache.ignite.tcbot.engine.ui.DsSuiteUi;
 import org.apache.ignite.tcbot.engine.ui.DsTestFailureUi;
 import org.apache.ignite.tcbot.persistence.IStringCompactor;
@@ -764,7 +763,7 @@ public class TcBotTriggerAndSignOffService {
      * Produce visa message(see {@link Visa}) based on passed parameters and 
publish it as a comment for specified
      * ticket on Jira server.
      *
-     * @param srvId TC Server ID to take information about token from.
+     * @param srvCodeOrAlias TC Server ID to take information about token from.
      * @param prov Credentials.
      * @param buildTypeId Build type ID, for which visa was ordered.
      * @param branchForTc Branch for TeamCity.
@@ -773,15 +772,15 @@ public class TcBotTriggerAndSignOffService {
      * @return {@link Visa} instance.
      */
     public Visa notifyJira(
-        String srvId,
+        String srvCodeOrAlias,
         ITcBotUserCreds prov,
         String buildTypeId,
         String branchForTc,
         String ticket,
         @Nullable String baseBranchForTc) {
-        ITeamcityIgnited tcIgnited = tcIgnitedProv.server(srvId, prov);
+        ITeamcityIgnited tcIgnited = tcIgnitedProv.server(srvCodeOrAlias, 
prov);
 
-        IJiraIgnited jira = jiraIgnProv.server(srvId);
+        IJiraIgnited jira = jiraIgnProv.server(srvCodeOrAlias);
 
         List<Integer> builds = 
tcIgnited.getLastNBuildsFromHistory(buildTypeId, branchForTc, 1);
 
@@ -800,9 +799,9 @@ public class TcBotTriggerAndSignOffService {
         JiraCommentResponse res;
 
         try {
-            String baseBranch = Strings.isNullOrEmpty(baseBranchForTc) ? 
prChainsProcessor.dfltBaseTcBranch(tcIgnited) : baseBranchForTc;
+            String baseBranch = Strings.isNullOrEmpty(baseBranchForTc) ? 
prChainsProcessor.dfltBaseTcBranch(srvCodeOrAlias) : baseBranchForTc;
 
-            List<DsSuiteUi> suitesStatuses = 
prChainsProcessor.getBlockersSuitesStatuses(buildTypeId, build.branchName, 
srvId, prov,
+            List<DsSuiteUi> suitesStatuses = 
prChainsProcessor.getBlockersSuitesStatuses(buildTypeId, build.branchName, 
srvCodeOrAlias, prov,
                 SyncMode.RELOAD_QUEUED,
                 baseBranch);
 
diff --git 
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/pr/PrChainsProcessor.java
 
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/pr/PrChainsProcessor.java
index ce34dcc..84ed0f1 100644
--- 
a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/pr/PrChainsProcessor.java
+++ 
b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/pr/PrChainsProcessor.java
@@ -31,6 +31,7 @@ import 
org.apache.ignite.githubignited.IGitHubConnIgnitedProvider;
 import org.apache.ignite.githubservice.IGitHubConnection;
 import org.apache.ignite.jiraignited.IJiraIgnited;
 import org.apache.ignite.jiraignited.IJiraIgnitedProvider;
+import org.apache.ignite.tcbot.common.conf.ITcServerConfig;
 import org.apache.ignite.tcbot.common.interceptor.AutoProfiling;
 import org.apache.ignite.tcbot.engine.chain.BuildChainProcessor;
 import org.apache.ignite.tcbot.engine.chain.FullChainRunCtx;
@@ -139,7 +140,7 @@ public class PrChainsProcessor {
 
         List<Integer> hist = tcIgnited.getLastNBuildsFromHistory(suiteId, 
branchForTc, buildResMergeCnt);
 
-        String baseBranchForTc = Strings.isNullOrEmpty(tcBaseBranchParm) ? 
dfltBaseTcBranch(tcIgnited) : tcBaseBranchParm;
+        String baseBranchForTc = Strings.isNullOrEmpty(tcBaseBranchParm) ? 
dfltBaseTcBranch(srvCodeOrAlias) : tcBaseBranchParm;
 
         FullChainRunCtx ctx = buildChainProcessor.loadFullChainContext(
             tcIgnited,
@@ -178,17 +179,24 @@ public class PrChainsProcessor {
 
     /**
      * Gets deafault TC identified base (reference) branch
-     * @param tcIgnited Tc ignited.
+     * @param srvCodeOrAlias TC service code or aliad
      */
-    public String dfltBaseTcBranch(ITeamcityIgnited tcIgnited) {
-        String dfltTrackedBranch = tcIgnited.config().defaultTrackedBranch();
+    public String dfltBaseTcBranch(String srvCodeOrAlias) {
+        ITcServerConfig tcCfg = cfg.getTeamcityConfig(srvCodeOrAlias);
+        String dfltTrackedBranch = tcCfg.defaultTrackedBranch();
+
+        String tcRealSvc = tcCfg.reference();
+
         Optional<ITrackedBranch> branch = 
cfg.getTrackedBranches().get(dfltTrackedBranch);
 
-        if(!branch.isPresent())
+        if (!branch.isPresent())
             return ITeamcity.DEFAULT;
 
-        Optional<ITrackedChain> chainAtSrv = 
branch.get().chainsStream().filter(chain ->
-            Objects.equals(chain.serverCode(), 
tcIgnited.serverCode())).findAny();
+        Predicate<ITrackedChain> relatedToTcFilter = chain ->
+            Objects.equals(chain.serverCode(), srvCodeOrAlias)
+                || (!Strings.isNullOrEmpty(tcRealSvc) && 
Objects.equals(chain.serverCode(), tcRealSvc));
+
+        Optional<ITrackedChain> chainAtSrv = 
branch.get().chainsStream().filter(relatedToTcFilter).findAny();
 
         if (!chainAtSrv.isPresent())
             return ITeamcity.DEFAULT;
@@ -239,7 +247,7 @@ public class PrChainsProcessor {
     /**
      * @param buildTypeId  Build type ID, for which visa was ordered.
      * @param branchForTc Branch for TeamCity.
-     * @param srvId Server id.
+     * @param srvCodeOrAlias Server id.
      * @param prov Credentials.
      * @param syncMode
      * @param baseBranchForTc
@@ -249,15 +257,15 @@ public class PrChainsProcessor {
     public List<DsSuiteUi> getBlockersSuitesStatuses(
         String buildTypeId,
         String branchForTc,
-        String srvId,
+        String srvCodeOrAlias,
         ICredentialsProv prov,
         SyncMode syncMode,
         @Nullable String baseBranchForTc) {
-        ITeamcityIgnited tcIgnited = tcIgnitedProvider.server(srvId, prov);
+        ITeamcityIgnited tcIgnited = tcIgnitedProvider.server(srvCodeOrAlias, 
prov);
 
         List<Integer> hist = tcIgnited.getLastNBuildsFromHistory(buildTypeId, 
branchForTc, 1);
 
-        String baseBranch = Strings.isNullOrEmpty(baseBranchForTc) ? 
dfltBaseTcBranch(tcIgnited) : baseBranchForTc;
+        String baseBranch = Strings.isNullOrEmpty(baseBranchForTc) ? 
dfltBaseTcBranch(srvCodeOrAlias) : baseBranchForTc;
 
         FullChainRunCtx ctx = buildChainProcessor.loadFullChainContext(
             tcIgnited,

Reply via email to