Дженкинс проверяет коммит непосредственно перед слиянием, а не коммит слияния - PullRequest
0 голосов
/ 28 апреля 2020

Я настроил задание Jenkins для запуска конвейера, когда ветвь объединяется с указанной c другой ветвью (давайте назовем ветвь назначения ${BRANCH_NAME}). Я настроил Gitlab с помощью веб-крючка Дженкинса для этой работы.

В конвейере я вызываю метод checkout :

steps {
    checkout([
            $class: 'GitSCM',
            branches: [[name: BRANCH_NAME]],
            doGenerateSubmoduleConfigurations: false,
            extensions: [
                    [$class: 'LocalBranch', localBranch: '**'],
                    [$class: 'CleanCheckout']
            ],
            submoduleCfg: [],
            userRemoteConfigs: [[url: SCM_URL]]
    ])
    sh "git pull origin ${BRANCH_NAME}"  // This ensures the head is the latest merge commit.
}

Моя проблема в том, что без этой команды git pull метод checkout проверяет фиксацию непосредственно перед фиксацией слияния. Я использую команду git pull для проверки самого последнего коммита из ветви назначения (который является коммитом слияния), но это выглядит как хакерский обходной путь. Как я могу заставить сам метод checkout вести себя так, как я планировал?

(Кстати, я видел примеры использования расширения PreBuildMerge, которое, как представляется, заканчивается коммитом слияния, но AIUI который создает коммит локально, а не берет исходный коммит слияния с сервера.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...