Можно ли заменить весь URL-адрес хранилища параметризованной строкой в ​​Hudson / Jenkins? - PullRequest
9 голосов
/ 22 апреля 2011

Можно ли в Гудзоне / Дженкинсе заменить строку всю в URL репозитория модуля Subversion параметром String? Я не хочу просто заменять только версию или что-то подобное, я хочу заменить весь URL.

Итак, когда я запускаю сборку, я получаю приглашение для URL-адреса и помещаю что-то вроде "http://scm.work.corp/svn/com.work.package/tags/project-4.0.0.RELEASE"", и оно проверяет это и собирает его.

Возможность замены частей "com.work.package" и "project-4.0.0.RELEASE" была бы такой же приемлемой. Я в основном хочу, чтобы это была одна работа, которая может создать любой релиз.

Ответы [ 6 ]

11 голосов
/ 22 апреля 2011

Да, вы можете.Но вы не можете позволить Дженкинсу / Хадсону контролировать SVN на предмет изменений.Даже при наличии параметров это не сработало для меня должным образом.Но если вы отслеживаете SVN из задания, для которого не задан параметрированный URL-адрес репозитория, пусть это задание инициирует нижестоящее задание, передавая весь URL-адрес репозитория в качестве параметра, а затем предложит нижестоящему заданию использовать параметр URL-адрес репозитория, тогда оно, похоже, будет работать,

Это то, что мы делаем для нашей сборки.У нас есть одно задание, которое может создать продукт из SVN на основе URL-адреса репозитория, с которого вы запускаете задание.Затем у нас есть несколько триггерных заданий, которые отслеживают определенные ветви;когда изменение отмечено, запустите задание сборки и передайте ему его URL.

4 голосов
/ 22 апреля 2011

Если Хадсон / Дженкинс заранее не знает URL-адрес, как он предполагает непрерывную интеграцию сборки?

И как Хадсон / Дженкинс может обновить , если выпродолжать менять URL?Вам нужно будет заставить Хадсона / Дженкинса либо делать новую проверку каждый раз, либо использовать команду svn switch.

Вся цель такого инструмента, как Хадсон / Дженкинс, - выполнять непрерывные сборкичто вы хотите помешать этому.Так как вы не делаете непрерывные сборки, зачем использовать такой инструмент, как Hudson / Jenkins?Почему бы не написать свой собственный скрипт Ant, который будет проверять, что вы хотите, а затем выполнять сборку?

Каждая ветвь и каждый модуль должны иметь свою собственную работу Hudson / Jenkins, а с плагином шаблона вы легко можете скопировать одну работубыть шаблоном для другой работы.Так что не так сложно настроить все нужные вам сборки.

3 голосов
/ 17 февраля 2015

Да, вы можете, у меня была та же проблема, но я изменил ее на $ VARIABLE и, похоже, работал, единственная проблема заключалась в том, что вы должны были включить "." в каталоге локального модуля. Мне потребовалось много времени, чтобы это выяснить.

2 голосов
/ 22 апреля 2011

Полагаю, мне следовало указать мой вариант использования.

Я понимаю цель Хадсона. Единственная причина, по которой я хочу, это чтобы Hudson выполнил единственную сборку для выпуска, который пользователь указал, чтобы плагин, который мы используем (sonar), мог быть запущен без необходимости добавлять его в каждый pom и присоединять его к каждой фазе. Мы делаем наши релизы вручную, поэтому мы не хотим, чтобы Хадсон справился с этим. Тем не менее, мы хотим, чтобы сонарные отчеты о наших выпусках, таким образом, это вариант использования.

Однако на самом деле все оказалось проще, чем я ожидал. Я просто выполнил параметризованную сборку и поместил $ {PARAMETER} в URL-адрес хранилища svn. Теперь, Дженкинс дал мне сообщение о том, что это неверный URL, но на самом деле сборка работает так, как я и ожидал. Я рад, что попробовал, несмотря на это предупреждение об ошибке.

2 голосов
/ 22 апреля 2011

Ты можешь это сделать, но Дженкинс не может управлять SVN для тебя.Создайте параметризованную сборку со своими строками, затем на шаге выполнения сделайте svn co ${parameter_you_selected} плюс все остальные этапы сборки (вызов скриптов ant, make-файлы, rakefiles и т. Д.)

1 голос
/ 07 ноября 2011

Да, вы можете. Отметьте Построение конкретной версии SVN с помощью Hudson . В этом случае он просто параметризует суффикс URL. В вашем случае вам нужно 2 параметра для "com.work.package" и "project-4.0.0.RELEASE".

Надеюсь, это поможет!

...