Как вызвать сборку в Jenkins сразу после регистрации кода

Может ли кто-нибудь помочь мне на шагах, как запускать сборку в Jenkins после того, как код будет совершен?

  • Установлен Jenkins, и сборка может быть запущена вручную.
  • Ниже приведены сведения о версии SVN.

TortoiseSVN 1.8.1, Build 24570 - 32 бит, 2013/07/22 18:28:29 Subversion 1.8.1, -release апрель 1.4.8 apr-util 1.5.2 крепостной 1.3.0 OpenSSL 1.0.1e 11 февраля 2013 г. zlib 1.2.8

3.Jenkins URL: "localhost: 8080/job/TestProject/"

Ответ 1

Чтобы создать сборку сразу после завершения кода, вам нужно будет что-то сообщить об этом Дженкинсу.

Однако вы можете настроить свою работу для регулярного опроса вашего SCM (в моем магазине мы опросу наших меркуриальных репозиториев каждые 5 минут) для новых изменений и сборки, если есть новые изменения.

Для этого в разделе Build Triggers установите флажок Опрос SCM и заполните выражение cron в текстовом поле. Для опроса каждые 5 минут мы используем

H/5 * * * *

Обратите внимание, что мы использовали

*/5 * * * *

но заменяя левый * на H, разрешите Дженкинсу избегать опроса для всех проектов одновременно (он будет опроса каждые 5 минут, но не обязательно в 0, 5, 10 и т.д. минут.

Обновление

Можно также запускать сборки удаленно, проверяя Триггерные сборки удаленно и указав токен в текстовом поле. Тогда простой контакт от script к соответствующему URL-адресу вызовет сборку.

JENKINS_URL/job/JOB_NAME/build?token=TOKEN_NAME

(для этого параметра могут потребоваться определенные разрешения для настройки или какая-либо конкретная глобальная конфигурация, поскольку, по-видимому, она недоступна для OP)

Для решения для перехвата после фиксации см. Документацию по подключению Subversion от Jenkins с важными частями ниже:

Дженкинс может опробовать репозитории Subversion для изменений, и хотя это достаточно эффективно, это может произойти только каждый раз в минуту, поэтому вам все равно придется ждать полную минуту, пока Дженкинс не обнаружит изменения.

Чтобы уменьшить эту задержку, вы можете настроить post commit hook, чтобы репозиторий Subversion мог уведомлять Jenkins о любых изменениях в этом репозитории. Чтобы сделать это, поместите следующий script в ваш пост-фиксационный файл (в каталоге $REPOSITORY/hooks):

REPOS="$1"
REV="$2"
UUID=`svnlook uuid $REPOS`
/usr/bin/wget \
  --header "Content-Type:text/plain;charset=UTF-8" \
  --post-data "`svnlook changed --revision $REV $REPOS`" \
  --output-document "-" \
  --timeout=2 \
  http://server/subversion/${UUID}/notifyCommit?rev=$REV

(Настоятельно рекомендуется прочитать полную документацию для информации, относящейся к конфигурации или для более надежного script)