Как передать переменную окружения hudson в качестве параметра для сборки svn - PullRequest
6 голосов
/ 20 октября 2010

Мое требование - мне нужна область действия переменной среды Хадсона в параметре сборки подпроекта для svn url.

Я хочу установить имя ветви SVN в качестве переменной среды Хадсона, так как я хочу, чтобы она использоваласьвсеми настроенными там проектами.

Если я получу доступ к своей переменной среды [BUILD_BRANCH] как

http://svn/repos/project/subproj/branches/${BUILD_BRANCH}

, то URL не будет заменен значением.

Но в том же случае, если у меня есть BUILD_BRANCH в качестве параметра String для параметризованной сборки в каждом подпроекте, URL-адрес заменяется значением.Но я не могу не изменять значение ветви [значение параметра сборки] каждый раз во всех проектах.Также нижестоящие проекты не смогли получить доступ к параметрам сборки [String] вызывающих проектов.

Ответы [ 4 ]

1 голос
/ 23 декабря 2011

В конфигурации сборки есть флажок под названием «Эта сборка параметризована».

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

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

0 голосов
/ 20 марта 2014

Кажется, что в настоящее время нет способа использовать переменную окружения для настройки местоположения хранилища Subversion.Я решил отредактировать config.xml файлы снаружи с помощью скрипта.

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

Для нас работает какой-то скрипт, подобный следующему:затем вы можете перейти в «Управление Jenkins» и выбрать «Перезагрузить конфигурацию с диска».

0 голосов
/ 25 марта 2011

Позвольте мне прояснить вашу проблему.Вы определили переменную среды BUILD_BRANCH и хотите иметь возможность ссылаться на нее из параметра для вашей сборки.Это верно?

Если это так, то я решил вашу проблему!

Когда параметры оцениваются (и любые переменные, на которые есть ссылки в них, раскрываются), у вас нет доступа кпеременные окружения, поэтому значение параметра в конечном итоге становится литеральной строкой '$ {BUILD_BRANCH}', а не расширяется до определения среды $ BUILD_BRANCH.

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

Решение состоит в том, чтобы добавить eval кначало каждой строки сценария оболочки, где вы ссылаетесь на параметр, который будет разрешать дополнительный слой, и переменная будет работать.

Последнее, что вам не нужно делатьесли вы ссылаетесь на предыдущий параметр.Так что, если Param1 - это foo, а Param2 - это $ {foo} bar, это будет работать, потому что параметры оцениваются по порядку.Однако, если значения параметров были изменены, вам нужно было бы использовать eval.

0 голосов
/ 22 октября 2010

установить BUILD_BRANCH в ManageHudson-> Настроить систему-> Глобальные свойства-> Переменные среды

...