2012-05-22 2 views
3

У нас есть проект, контролируемый SCM, который каждые несколько минут проводит опрос репо. В целом рабочий процесс велик, но иногда мне нужно вносить новые изменения в репозиторий сервера, не запуская сборку в Jenkins (по разным причинам: длинные сборки, незначительные изменения, одновременные коммиты и т. Д.).Дженкинс: обновление SCM без запуска сборки?

У меня уже установлен тихий период, и иногда я просто начинаю и останавливаю сборку (что неудобно), поэтому Дженкинс тянет изменения и не запускает сборку позже.

Итак, есть плагин любого рода, который позволяет либо:

  • вручную отменить будущую сборку (прежде, чем это вызвано SCM Poller)
  • вручную обновить SCM репо проекта без запуска сборки?

ответ

7

You есть много решений для этого:

  1. Вместо того, чтобы опросить ваш SCM и запустить сборку изменений, вы можете сделать это по-другому. Вы можете заставить SCM решить, должен ли коммит инициировать работу или нет. Have a look there for an example
  2. Вы можете попытаться использовать свойство «Исключенные комментарии коммита» в расширенных свойствах Subversion своей работы, таким образом, вы могли бы избежать запуска сборок «бесполезных коммитов».
+0

Cédric, вы правы, оба варианта хороши и разумны. Жаль, что MercurialSCM пока не поддерживает аналогичную концепцию. Что касается первого, есть несколько проблем: у вас должен быть доступ к серверу SCM (которого у меня нет), и вы должны знать, что фиксация будет незначительной априори. Мы также постоянно добавляем новые проекты в Jenkins, поэтому настройка SCM для каждого нового проекта может быть утомительной. –

+1

После некоторого размышления и чтения мнения Кохсука об этом (http://kohsuke.org/2011/12/01/polling-must-die-triggering-jenkins-builds-from-a-git-hook/) я решил попробуйте воспользоваться попыткой подключения к серверу. Для Mercurial есть руководство здесь: https://wiki.jenkins-ci.org/display/JENKINS/Mercurial+Plugin –

2

Взгляните, что: https://wiki.jenkins-ci.org/display/JENKINS/PollSCM+Plugin

вы должны настроить триггер сборки, как «Строят периодически» (без запуска «Pool SCM») только и я думаю, что может сделать работу

+0

Спасибо за ссылку, eyossi. Плагин уже выполняет большую часть работы, я попробую и вернусь. –

+0

дайте мне знать, если что-то еще не работает ... – eyossi

1

Другая идея (не обязательно лучшая, но она может лучше соответствовать вашим вкусам): используйте Run Condition Plugin. Сделайте остальную часть вашего построения условным по параметру (назовем его DO_BUILD). Установите этот параметр на TRUE по умолчанию. Если вам нужно что-то зафиксировать без запуска набора сборки DO_BUILD по умолчанию FALSE.

Вариация на ту же идею: вы делаете свой опрос в одном задании (Trigger), который вызывает вашу основную работу через Parameterized Trigger Plugin на этапе сборки. Этот шаг сборки может быть обусловлен параметром. Обратите внимание, что в этом случае вам придется либо использовать одно и то же настраиваемое рабочее пространство для обеих сборников, либо выполнить ручную проверку (например, на шаге сборки оболочки) в основном задании.

Смежные вопросы