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