Я интегрировал Jenkins с Bitbucket с помощью плагина Bitbucket . Согласно Wiki плагина, задание будет запущено, если хранилище установлено в SCM задания. Как вы знаете, если установить SCM в задании Jenkins, это будет клонировано на этапе предварительной сборки.
Все идет нормально. Однако основная цель задания, которое я задаю, не имеет ничего общего с содержимым репозитория; вместо этого я просто хочу, чтобы задание обрабатывало полезную нагрузку, отправленную Bitbucket. Можно сказать, что с точки зрения хранилища нет ничего сложного в клонировании репозитория, несмотря на то, что он вам действительно не нужен. Я так не думаю, добавление ненужных шагов, отнимание времени и ресурсов не является хорошей практикой.
Итак, вопрос: кто-нибудь знает, как установить SCM в задании Jenkins, но предотвратить его клонирование хранилища?
Ответы:
Да, безусловно. Я делаю это все время. Вы можете указать параметры конфигурации для своего конвейера, и один из них заключается в том
skipDefaultCheckout
, что конвейер пропускает этап по умолчанию «Декларативный: Checkout SCM».skipDefaultCheckout
Опция описана в трубопроводном Синтаксис и вот пример Jenkinsfile , показывающий , как использовать его:источник
checkout scm
чтобы вручную клонировать, где вам нужно. см. devops.stackexchange.com/a/1916/2450 .Если вы не используете декларативный конвейер, вы можете избежать проверки из SCM:
источник
Я думаю, что вы хотите достичь, обрабатывая полезную нагрузку webhook в работе Jenkins. Использовать плагин bitbucket не нужно, и, вероятно, он предназначен для клонирования репозитория.
Я верю, что этот ответ может помочь вам.
источник