Я не вижу, чтобы мое требование было поддержано Дженкинсом. Но, как предлагает @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.