Подтвердить что ты не робот

Задание работы Дженкинса (Хадсона) зависит от другой работы

У меня есть два задания:

  • Загрузить
  • Запуск-экземпляр

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

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

Заметьте, что я не хочу, чтобы Upload всегда запускал запуск-экземпляр, что и делает опция "Build after other projects" в Launch-instance. Я хочу больше , аналогично тому, как атрибут depends работает в Ant.

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

En la sección " Построить триггеры " [...] marcamos la opción " Триггер строит удаленно (например, из сценариев) ". Al marcar esta opción vemos como aparece el cuadro de texto "Знак аутентификации". Aquí pondremos el nombre del token de autenticación.

alt text
(источник: adictosaltrabajo.com)

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

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

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

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

Вы можете использовать зависимые нисходящие или восходящие потоки. Вы должны использовать "Build Triggers" →  Построить после того, как другие проекты будут построены и/или будут выполняться после сборки в части конфигурации проекта.