#jenkins-pipeline
#дженкинс-конвейер
Вопрос:
Мой проект состоит из нескольких репозиториев git. Один основной репозиторий и другие вспомогательные репозитории. В конвейере Дженкинса я хочу checkout scm:
использовать их все, но меня интересует только отслеживание изменений и опрос из основного репозитория — другие загромождают список изменений и вызывают другие проблемы с инфраструктурой (это большой проект).
Я подумал о том, чтобы просто проверять оставшиеся репозитории по sh
блокам, чтобы пропустить «функции», которые мне не нужны, но мне придется дублировать конфигурацию и каким-то образом передавать учетные данные — как правило, я бы хотел, чтобы конвейеры выполняли всю работу за меня.
Ожидаемый результат: checkout scm
не вызывает появления журнала изменений или не вызывает опроса из указанного репозитория в дальнейшем.
Есть ли способ архивировать это с помощью конфигурации, вместо того, чтобы скрывать логику проверки из конвейера с помощью sh
step?
Ответ №1:
Используйте следующий код в Jenkinsfile:
checkout scm: scm, poll: false, changelog: false
Комментарии:
1. Документация на jenkins.io/doc/pipeline/steps/workflow-scm-step
Ответ №2:
При проверке других репозиториев вы можете отключить журнал изменений и опрос с помощью необязательных аргументов для класса. Например, учитывая вспомогательный репозиторий, называемый helper
:
checkout([$class: 'GitSCM',
branches: [[name: '*/master']],
userRemoteConfigs: [[url: 'http://git-server/user/helper.git']]
changelog: false,
poll: false
])
и тогда журнал изменений и опрос будут отключены для helper
репозитория. Вы можете повторить это использование для всех других ваших вспомогательных репозиториев, чтобы отключить их журнал изменений и опрос.
Для получения дополнительной информации ознакомьтесь с документацией по этапу конвейера GitSCM.