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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]