From de12e8911d9006e8f2fe7ab49afa75bfb6715adf Mon Sep 17 00:00:00 2001 From: Fu Hanxi Date: Mon, 22 Sep 2025 13:42:31 +0200 Subject: [PATCH] ci: improve git diff, avoid gitlab bug on CI_MERGE_REQUEST_DIFF_BASE_SHA --- .gitlab-ci.yml | 8 ++++---- .gitlab/ci/common.yml | 7 ++++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8dd6a29ccd..ca68ad4813 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,12 +3,12 @@ workflow: # Disable those non-protected push triggered pipelines - if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_BRANCH !~ /^release\/v/ && $CI_COMMIT_TAG !~ /^v\d+\.\d+(\.\d+)?($|-)/ && $CI_COMMIT_TAG !~ /^qa-test/ && $CI_PIPELINE_SOURCE == "push"' when: never - # when running merged result pipelines, CI_COMMIT_SHA represents the temp commit it created. - # Please use PIPELINE_COMMIT_SHA at all places that require a commit sha of the original commit. - - if: $CI_OPEN_MERGE_REQUESTS != null + # merged result pipelines + - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA variables: PIPELINE_COMMIT_SHA: $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA - - if: $CI_OPEN_MERGE_REQUESTS == null + # else + - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA == null || $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA == "" variables: PIPELINE_COMMIT_SHA: $CI_COMMIT_SHA - when: always diff --git a/.gitlab/ci/common.yml b/.gitlab/ci/common.yml index 70bbd5a068..035fe6e1f5 100644 --- a/.gitlab/ci/common.yml +++ b/.gitlab/ci/common.yml @@ -334,9 +334,10 @@ variables: TEMP_FILE=$(mktemp) # merged results pipelines, by default if [[ -n $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA ]]; then - git fetch origin $CI_MERGE_REQUEST_DIFF_BASE_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS} - git fetch origin $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS} - git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA > "$TEMP_FILE" + git fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_SHA + git fetch origin $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA + + git diff --name-only $CI_MERGE_REQUEST_TARGET_BRANCH_SHA...$CI_MERGE_REQUEST_SOURCE_BRANCH_SHA > "$TEMP_FILE" GIT_DIFF_OUTPUT=$(cat "$TEMP_FILE") git fetch origin $CI_COMMIT_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS} # merge request pipelines, when the mr got conflicts