Конвейер Дженкинса: как проверить репозиторий, не запуская опрос или отслеживание изменений?

#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.