Можно ли заменить весь URL-адрес репозитория параметризованной строкой в ​​Hudson / Jenkins?

Можно ли в Hudson / Jenkins заменить всю строку в 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 была бы столь же приемлемой. Я в основном хочу, чтобы это была одна работа, которая могла бы собрать любой релиз.


person AHungerArtist    schedule 21.04.2011    source источник


Ответы (6)


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

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

person Jason Swager    schedule 22.04.2011
comment
В качестве дополнения вам нужно использовать формат $ xxx, а не формат% xx%, чтобы ссылаться на ваш параметр сборки (где xxx - ваш путь к SVN). - person DonBecker; 22.10.2012
comment
Это сработало для меня, позволив мне выбрать, из какой ветки вытащить сборку даунстима. Я использую Jenkins 1.575 с SubversionPlugin 2.4.2. У меня есть задача восходящего потока, в которой есть монитор SCM, нисходящий поток запускается успехом восходящего потока. Обратите внимание, что при установке переменной в настройках SCM он будет жаловаться, что path.to.svn / yourepo / $ repo_path не существует, но он все равно будет правильно проверяться и строиться. - person Damon; 28.08.2014

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

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

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

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

person David W.    schedule 22.04.2011
comment
Я понимаю цель Хадсона. Единственная причина, по которой я хочу этого, - чтобы Хадсон выполнил единую сборку для выпуска, который указывает пользователь, чтобы плагин, который мы используем (сонар), мог быть запущен без необходимости добавлять его в каждый pom и прикреплять его к определенной фазе. Мы делаем наши релизы вручную, поэтому не хотим, чтобы Хадсон с этим справлялся. Однако нам нужны отчеты сонара о наших выпусках, поэтому этот вариант использования. - person AHungerArtist; 22.04.2011
comment
Sonar отлично работает с периодическими сборками, это просто выпуски, которые нам нужно было обрабатывать специально. - person AHungerArtist; 22.04.2011
comment
Это может потребоваться по многим причинам, поэтому в разделе триггеров сборки в конфигурации задания можно снять флажок опросить scm. - person DonBecker; 22.10.2012

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

person Pedro_Nieto    schedule 17.02.2015

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

person aflat    schedule 22.04.2011

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

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

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

person AHungerArtist    schedule 22.04.2011
comment
Я использую Hudson, но думаю, что это должно работать и с Jenkins. Я использую URL-адрес репозитория в следующем формате: svn.apache.org/ repos / asf / hadoop / common / trunk @ $ ApacheRevNumber, где ApacheRevNumber - параметр, который я определяю с помощью этой сборки, является параметризованным параметром - person Abhijeet Apsunde; 29.11.2013

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

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

person Spyros Doulgeridis    schedule 07.11.2011