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

hellostephen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new e885e46cc3a [chore](ci) support comment to trigger tc pipelines for 
PRs base dev … (#49271)
e885e46cc3a is described below

commit e885e46cc3a96f36f48602142a44c04e7be7d504
Author: Dongyang Li <lidongy...@selectdb.com>
AuthorDate: Thu Mar 20 10:24:05 2025 +0800

    [chore](ci) support comment to trigger tc pipelines for PRs base dev … 
(#49271)
    
    …branch
---
 .github/workflows/comment-to-trigger-teamcity.yml | 177 +++++++---------------
 regression-test/pipeline/common/teamcity-utils.sh |  36 ++++-
 2 files changed, 87 insertions(+), 126 deletions(-)

diff --git a/.github/workflows/comment-to-trigger-teamcity.yml 
b/.github/workflows/comment-to-trigger-teamcity.yml
index 7872c216d7c..3164f330c9c 100644
--- a/.github/workflows/comment-to-trigger-teamcity.yml
+++ b/.github/workflows/comment-to-trigger-teamcity.yml
@@ -174,25 +174,13 @@ jobs:
       run: |
         source ./regression-test/pipeline/common/teamcity-utils.sh
         set -x
-        if [[ "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'master'" ||
-              "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'branch-2.0'" ||
-              "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'branch-3.0'"  ||
-              "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'branch-2.1'" ]]; 
then
-          trigger_or_skip_build \
-            "${{ steps.changes.outputs.changed_fe_ut }}" \
-            "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
-            "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
-            "feut" \
-            "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
-        else
-          echo "PR target branch is not in (master, branch-2.0, branch-2.1, 
branch-3.0), skip run feut"
-          trigger_or_skip_build \
-            "false" \
-            "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
-            "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
-            "feut" \
-            "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
-        fi
+        trigger_or_skip_build \
+          "${{ steps.changes.outputs.changed_fe_ut }}" \
+          "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
+          "${{ steps.parse.outputs.TARGET_BRANCH }}" \
+          "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
+          "feut" \
+          "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
 
 
     - name: "Trigger or Skip beut"
@@ -200,42 +188,26 @@ jobs:
       run: |
         source ./regression-test/pipeline/common/teamcity-utils.sh
         set -x
-        if [[ "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'master'" ||
-              "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'branch-2.0'" ||
-              "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'branch-3.0'" ||
-              "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'branch-2.1'" ]]; 
then
-          trigger_or_skip_build \
-            "${{ steps.changes.outputs.changed_be_ut }}" \
-            "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
-            "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
-            "beut" \
-            "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
-        else
-          echo "PR target branch is not in (master, branch-2.0, branch-2.1, 
branch-3.0), skip run beut"
-          trigger_or_skip_build \
-            "false" \
-            "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
-            "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
-            "beut" \
-            "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
-        fi
+        trigger_or_skip_build \
+          "${{ steps.changes.outputs.changed_be_ut }}" \
+          "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
+          "${{ steps.parse.outputs.TARGET_BRANCH }}" \
+          "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
+          "beut" \
+          "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
 
     - name: "Trigger or Skip cloudut"
       if: ${{ fromJSON(steps.parse.outputs.comment_trigger) && 
contains(fromJSON('["cloudut", "buildall"]'), 
steps.parse.outputs.COMMENT_TRIGGER_TYPE) }}
       run: |
         source ./regression-test/pipeline/common/teamcity-utils.sh
         set -x
-        if [[ "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'master'" ||
-              "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'branch-3.0'" ]]; 
then
-          trigger_or_skip_build \
-            "${{ steps.changes.outputs.changed_cloud_ut }}" \
-            "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
-            "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
-            "cloudut" \
-            "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
-        else
-          echo "PR target branch is not in (master, branch-3.0), skip run 
cloudut"
-        fi
+        trigger_or_skip_build \
+          "${{ steps.changes.outputs.changed_cloud_ut }}" \
+          "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
+          "${{ steps.parse.outputs.TARGET_BRANCH }}" \
+          "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
+          "cloudut" \
+          "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
 
     - name: "Trigger or Skip compile"
       if: ${{ fromJSON(steps.parse.outputs.comment_trigger) && 
contains(fromJSON('["compile", "buildall"]'), 
steps.parse.outputs.COMMENT_TRIGGER_TYPE) }}
@@ -250,6 +222,7 @@ jobs:
         trigger_or_skip_build \
           "${changed}" \
           "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
+          "${{ steps.parse.outputs.TARGET_BRANCH }}" \
           "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
           "compile" \
           "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
@@ -265,6 +238,7 @@ jobs:
         trigger_or_skip_build \
           "${{ steps.changes.outputs.changed_p0 }}" \
           "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
+          "${{ steps.parse.outputs.TARGET_BRANCH }}" \
           "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
           "p0" \
           "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
@@ -281,6 +255,7 @@ jobs:
         trigger_or_skip_build \
           "${{ steps.changes.outputs.changed_p1 }}" \
           "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
+          "${{ steps.parse.outputs.TARGET_BRANCH }}" \
           "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
           "p1" \
           "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
@@ -296,6 +271,7 @@ jobs:
         trigger_or_skip_build \
           "${{ steps.changes.outputs.changed_external }}" \
           "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
+          "${{ steps.parse.outputs.TARGET_BRANCH }}" \
           "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
           "external" \
           "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
@@ -308,24 +284,14 @@ jobs:
           echo "COMMENT_TRIGGER_TYPE is buildall, trigger compile is enough, 
compile will trigger cloud_p0" && exit
         fi
         set -x
-        if [[ "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'master'" ||
-              "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'branch-3.0'" ]]; 
then
-          echo "PR target branch is in (master, branch-3.0), need run cloud_p0"
-          trigger_or_skip_build \
-            "${{ steps.changes.outputs.changed_cloud_p0 }}" \
-            "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
-            "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
-            "cloud_p0" \
-            "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
-        else
-          echo "PR target branch is not in (master, branch-3.0), skip run 
cloud_p0"
-          trigger_or_skip_build \
-            "false" \
-            "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
-            "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
-            "cloud_p0" \
-            "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
-        fi
+        trigger_or_skip_build \
+          "${{ steps.changes.outputs.changed_cloud_p0 }}" \
+          "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
+          "${{ steps.parse.outputs.TARGET_BRANCH }}" \
+          "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
+          "cloud_p0" \
+          "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
+
 
     - name: "Trigger or Skip vault_p0"
       if: ${{ fromJSON(steps.parse.outputs.comment_trigger) && 
contains(fromJSON('["vault_p0", "buildall"]'), 
steps.parse.outputs.COMMENT_TRIGGER_TYPE) }}
@@ -335,24 +301,13 @@ jobs:
           echo "COMMENT_TRIGGER_TYPE is buildall, trigger compile is enough, 
compile will trigger vault_p0" && exit
         fi
         set -x
-        if [[ "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'master'" ||
-              "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'branch-3.0'" ]]; 
then
-          echo "PR target branch is in (master, branch-3.0), need run vault_p0"
-          trigger_or_skip_build \
-            "${{ steps.changes.outputs.changed_vault_p0 }}" \
-            "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
-            "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
-            "vault_p0" \
-            "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
-        else
-          echo "PR target branch is not in (master, branch-3.0), skip run 
vault_p0"
-          trigger_or_skip_build \
-            "false" \
-            "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
-            "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
-            "vault_p0" \
-            "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
-        fi
+        trigger_or_skip_build \
+          "${{ steps.changes.outputs.changed_vault_p0 }}" \
+          "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
+          "${{ steps.parse.outputs.TARGET_BRANCH }}" \
+          "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
+          "vault_p0" \
+          "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
 
     - name: "Trigger or Skip cloud_p1"
       if: ${{ fromJSON(steps.parse.outputs.comment_trigger) && 
contains(fromJSON('["cloud_p1", "buildall"]'), 
steps.parse.outputs.COMMENT_TRIGGER_TYPE) }}
@@ -362,24 +317,13 @@ jobs:
           echo "COMMENT_TRIGGER_TYPE is buildall, trigger compile is enough, 
compile will trigger cloud_p1" && exit
         fi
         set -x
-        if [[ "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'master'" ||
-              "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'branch-3.0'" ]]; 
then
-          echo "PR target branch is in (master, branch-3.0), need run cloud_p1"
-          trigger_or_skip_build \
-            "${{ steps.changes.outputs.changed_cloud_p1 }}" \
-            "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
-            "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
-            "cloud_p1" \
-            "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
-        else
-          echo "PR target branch is not in (master, branch-3.0), skip run 
cloud_p1"
-          trigger_or_skip_build \
-            "false" \
-            "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
-            "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
-            "cloud_p1" \
-            "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
-        fi
+        trigger_or_skip_build \
+          "${{ steps.changes.outputs.changed_cloud_p1 }}" \
+          "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
+          "${{ steps.parse.outputs.TARGET_BRANCH }}" \
+          "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
+          "cloud_p1" \
+          "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
 
     - name: "Trigger or Skip arm"
       if: ${{ fromJSON(steps.parse.outputs.comment_trigger) && 
contains(fromJSON('["arm", "buildall"]'), 
steps.parse.outputs.COMMENT_TRIGGER_TYPE) }}
@@ -389,6 +333,7 @@ jobs:
         trigger_or_skip_build \
           "${{ steps.changes.outputs.changed_arm }}" \
           "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
+          "${{ steps.parse.outputs.TARGET_BRANCH }}" \
           "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
           "arm" \
           "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
@@ -398,25 +343,13 @@ jobs:
       run: |
         source ./regression-test/pipeline/common/teamcity-utils.sh
         set -x
-        if [[ "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'master'" ||
-              "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'branch-3.0'" ||
-              "${{ steps.parse.outputs.TARGET_BRANCH }}" == "'branch-2.0'" ]]; 
then
-          echo "PR target branch is in (master, branch-2.0, branch-3.0), need 
run performance"
-          trigger_or_skip_build \
-            "${{ steps.changes.outputs.changed_performance }}" \
-            "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
-            "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
-            "performance" \
-            "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
-        else
-          echo "PR target branch is not in (master, branch-2.0, branch-3.0), 
skip run performance"
-          trigger_or_skip_build \
-            "false" \
-            "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
-            "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
-            "performance" \
-            "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
-        fi
+        trigger_or_skip_build \
+          "${{ steps.changes.outputs.changed_performance }}" \
+          "${{ steps.parse.outputs.PULL_REQUEST_NUM }}" \
+          "${{ steps.parse.outputs.TARGET_BRANCH }}" \
+          "${{ steps.parse.outputs.COMMIT_ID_FROM_TRIGGER }}" \
+          "performance" \
+          "${{ steps.parse.outputs.COMMENT_REPEAT_TIMES }}"
 
     - name: "Skip buildall"
       if: ${{ fromJSON(steps.parse.outputs.comment_skip) }}
diff --git a/regression-test/pipeline/common/teamcity-utils.sh 
b/regression-test/pipeline/common/teamcity-utils.sh
index 94d04152ba5..f6a1f79bee5 100644
--- a/regression-test/pipeline/common/teamcity-utils.sh
+++ b/regression-test/pipeline/common/teamcity-utils.sh
@@ -18,6 +18,20 @@
 
 #!/bin/bash
 
+# PR的目标分支
+# 到
+# 可以跑的流水线
+# 的映射
+# 控制哪些分支可以跑哪些流水线
+declare -A targetBranch_to_pipelines
+targetBranch_to_pipelines=(
+    ['master']='feut beut cloudut compile p0 p1 external arm performance 
cloud_p0 cloud_p1 vault_p0'
+    ['branch-3.1']='feut beut cloudut compile p0 p1 external arm performance 
cloud_p0 cloud_p1 vault_p0'
+    ['branch-3.0']='feut beut cloudut compile p0 p1 external arm performance 
cloud_p0 cloud_p1 vault_p0'
+    ['branch-2.1']='feut beut compile p0 p1 external arm performance'
+    ['branch-2.0']='feut beut compile p0 p1 external arm performance'
+)
+
 # github中评论的要触发的流水线名字
 # 到
 # teamcity流水线实际的名称
@@ -259,9 +273,10 @@ trigger_or_skip_build() {
     # 根据相关文件是否修改,来触发or跳过跑流水线
     local FILE_CHANGED="$1" # 默认为"true"
     local PULL_REQUEST_NUM="${PULL_REQUEST_NUM:-$2}"
-    local COMMIT_ID_FROM_TRIGGER="${COMMIT_ID_FROM_TRIGGER:-$3}"
-    local COMMENT_TRIGGER_TYPE="${COMMENT_TRIGGER_TYPE:-$4}"
-    local COMMENT_REPEAT_TIMES="${COMMENT_REPEAT_TIMES:-$5}"
+    local PULL_REQUEST_TARGET_BRANCH="${PULL_REQUEST_TARGET_BRANCH:-$3}"
+    local COMMIT_ID_FROM_TRIGGER="${COMMIT_ID_FROM_TRIGGER:-$4}"
+    local COMMENT_TRIGGER_TYPE="${COMMENT_TRIGGER_TYPE:-$5}"
+    local COMMENT_REPEAT_TIMES="${COMMENT_REPEAT_TIMES:-$6}"
     if [[ -z "${PULL_REQUEST_NUM}" ||
         -z "${COMMIT_ID_FROM_TRIGGER}" ||
         -z "${COMMENT_TRIGGER_TYPE}" ]]; then
@@ -269,14 +284,27 @@ trigger_or_skip_build() {
         return 1
     fi
 
+    # 有些分支不需要某些跑流水线,在targetBranch_to_pipelines中的分支,需要判断
+    if [[ "${!targetBranch_to_pipelines[*]}" =~ ${PULL_REQUEST_TARGET_BRANCH} 
]]; then
+        if [[ "${targetBranch_to_pipelines[${PULL_REQUEST_TARGET_BRANCH}]}" =~ 
${COMMENT_TRIGGER_TYPE} ]]; then
+            echo "INFO: pr ${PULL_REQUEST_NUM} to branch 
${PULL_REQUEST_TARGET_BRANCH} need to run ${COMMENT_TRIGGER_TYPE}"
+        else
+            echo "INFO: pr ${PULL_REQUEST_NUM} to branch 
${PULL_REQUEST_TARGET_BRANCH} not need to run ${COMMENT_TRIGGER_TYPE}"
+            skip_build "${COMMIT_ID_FROM_TRIGGER}" "${COMMENT_TRIGGER_TYPE}"
+            return 0
+        fi
+    fi
+
     if [[ "${FILE_CHANGED:-"true"}" == "true" ]]; then
         cancel_running_build "${PULL_REQUEST_NUM}" "${COMMENT_TRIGGER_TYPE}"
         cancel_queue_build "${PULL_REQUEST_NUM}" "${COMMENT_TRIGGER_TYPE}"
         trigger_build "${PULL_REQUEST_NUM}" "${COMMIT_ID_FROM_TRIGGER}" 
"${COMMENT_TRIGGER_TYPE}" "${COMMENT_REPEAT_TIMES}"
     else
+        cancel_running_build "${PULL_REQUEST_NUM}" "${COMMENT_TRIGGER_TYPE}"
+        cancel_queue_build "${PULL_REQUEST_NUM}" "${COMMENT_TRIGGER_TYPE}"
         skip_build "${COMMIT_ID_FROM_TRIGGER}" "${COMMENT_TRIGGER_TYPE}"
         if [[ ${COMMENT_TRIGGER_TYPE} == "compile" ]]; then
-            # skip compile 的时候,也把 p0 p1 external cloud_p0 cloud_p1 都 skip 了
+            # skip compile 的时候,也把 p0 p1 external cloud_p0 cloud_p1 vault_p0 都 
skip 了
             skip_build "${COMMIT_ID_FROM_TRIGGER}" "p0"
             skip_build "${COMMIT_ID_FROM_TRIGGER}" "p1"
             skip_build "${COMMIT_ID_FROM_TRIGGER}" "external"


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to