Получить версию ветки запроса на извлечение для триггера pr-слияния. Декларативный многоотраслевой конвейер Jenkins. - PullRequest
0 голосов
/ 10 марта 2020

В многоотраслевом конвейере есть возможность построить PR, объединенный с базовой веткой. Когда эта опция включена, переменная среды GIT_COMMIT содержит га sh объединенного коммита, а не ха sh последнего ха sh ветви изменений. Нет другой переменной среды, установленной с ревизией ветви ha sh.

Но я хочу, чтобы ha sh ревизии филиала выполнил анализ PR Sonar и для некоторых других задач отчетности. Как мне этого добиться?

https://issues.jenkins-ci.org/browse/JENKINS-39496 описывает PullRequestSCMRevision. Но я понятия не имею, как вызвать функцию PullRequestSCMRevision.getPullHa sh () внутри файла Jenkinsfile в декларативном конвейере.

1 Ответ

0 голосов
/ 29 марта 2020

Я не вижу, чтобы мое требование было поддержано Дженкинсом. Но, как предлагает @Omer в приведенном выше комментарии, мы можем выполнить нашу работу, вызвав git rev-parse remotes/origin/$BRANCH_NAME в Jenkinsfile. Вы можете ввести новую переменную среды в свою среду построения декларативного конвейера, вызвав ее в переменной среды сценария следующим образом.

REVISION = """${
        sh(
                returnStdout: true,
                script: '''
                            if [ ${CHANGE_ID+x} ]; then
                                 git rev-parse remotes/origin/$BRANCH_NAME
                            else 
                                echo "$GIT_COMMIT"
                            fi
                        '''
        ).trim()
    }"""

Затем вы можете использовать переменную среды REVISION для ссылки на git ревизия для любого вида сборки (ветвь, ревизия запроса на извлечение, ревизия слияния запроса на извлечение).

Примечание: git rev-parse $BRANCH_NAME может не работать конвейеры ревизии слияния запроса на извлечение, поскольку эта команда возвращает ревизия вашей локальной ветки, которая отличается от удаленной ветки из-за автоматической фиксации слияния, выполненной Jenkins.

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