Заставить Дженкинса (Хадсона) работать на другой работе - PullRequest
21 голосов
/ 20 апреля 2010

У меня есть две работы:

  1. Загрузить
  2. Launch-экземпляр

Я хочу сделать Launch-instance зависимым от другого, так что запуск Launch-instance автоматически заставляет Upload запускаться первым.

Можно ли добиться этого с помощью встроенных функций Jenkins или с помощью плагина?

Обратите внимание, что я не хочу Загрузить , чтобы всегда запускать Launch-instance , что является опцией "Построить после того, как другие проекты построены" Запуск экземпляра будет делать. Мне нужно больше , аналогично тому, как атрибут depends работает в Ant .

Ответы [ 5 ]

25 голосов
/ 21 сентября 2011

Вы пробовали Параметризованный триггерный плагин ?

Вы можете использовать его в качестве шага сборки и установить флажок «Блокировать до тех пор, пока запущенные проекты не завершат свои сборки». Это должно быть именно то, что вы ищете.

5 голосов
/ 20 апреля 2010

Ага, нашел это! Здесь я опираюсь на ответ Мики , который показал путь, но не полностью решил это для меня.

Как говорится в статье на испанском языке о запуске сборок Hudson , которая была связана с комментариями Страницы API удаленного доступа Хадсона , на которую ссылается miki чтобы:

En la sección " Создание триггеров " [...] marcamos la opción " Удаленная сборка триггера (например, из сценариев)". Al marcar esta opción vemos como aparece el cuadro de texto" Аутентификационный токен ". Аккредитованный символ. Аутентичные символы.

альтернативный текст http://www.adictosaltrabajo.com/tutoriales/hudsonSubversionPush/hudsonSubversionPush-01.png

(Кажется, польза от знания испанского языка начинает материализовываться ...: -)

Получается, что Hudson предоставляет удобную встроенную опцию для удаленного запуска сборок. В разделе Триггеры сборки (из моего задания Загрузка ) вы можете включить удаленную сборку и установить токен авторизации (см. Скриншот выше). Затем вы можете запустить сборку, открыв определенный URL, содержащий этот токен. В моем случае первый шаг сборки Launch-instance выглядит следующим образом:

wget http://[hudson-url]/job/Upload/build?token=TEST
sleep 10

Это работает, даже если анонимные сборки отключены, и простая попытка получить доступ к URL сборки даст 403 Forbidden.

2 голосов
/ 19 ноября 2011

Запуск зависимого задания через wget не является общим решением. Поскольку задания выполняются асинхронно, ваше Launch-job не будет зависать и ждать завершения загрузки. использование сна - это просто грязный хак и не подходит для большинства случаев ... ИМХО, лучшее решение - использовать: http://wiki.jenkins -ci.org / display / JENKINS / Join + Plugin

1 голос
/ 20 апреля 2010

Как насчет сборки Загрузите , вызвав его URL сборки с wget в качестве первого шага сборки? Затем добавляем шаги сборки говядины Launch-instance .

Или для более изящного подхода, возможно, используйте API удаленного доступа .

0 голосов
/ 20 апреля 2010

Вы можете использовать нисходящие или восходящие зависимости. Вы должны использовать «Построить триггеры» -> Выполните сборку после того, как другие проекты собраны и / или действия после сборки в части конфигурации проекта.

...