Как использовать значения Hudson Parameterized Build в электронном письме

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

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

Из документации Hudsons на Параметризованные сборки, в сборку добавлены текстовые параметры. Я пытаюсь здесь с двумя разными (чтобы посмотреть, что работает):

В конфигурации задания This build is parameterized я добавил следующие две переменные

Name:          USER 
Default value: userCAPITALIZED

Name:          user
Default value: userstandard

См. скриншот параметризованные настройки
(источник: justaddwater.dk)
.

Теперь, в нижнем разделе «Редактируемое уведомление по электронной почте», я пробовал ВСЕ, чтобы получить эти значения.

Что работает: работают все стандартные переменные сборки Hudson. Например, $CHANGES, $SVN_REVISION и т. д.

Но я безуспешно пытался получить доступ к переменным user и USER. Вот список того, что не работает:

subject: test of parametrized mail 1user:${env.user}, 2USER:${USER}, 3$USER, 4${ENV, USER}, 5%USER%,stop

more tests
${env, user}
${env, USER}
${ENV, user}
${ENV, USER}
${user}
${USER}
${env.user}
${ENV.user}
${env.USER}
${ENV.USER}
$user
$USER
%user%
%USER%

changes $CHANGES
changes ${CHANGES}
subversion revision: $SVN_REVISION
subversion revision: ${SVN_REVISION}

Скриншот конфигурации электронной почты
(источник: justaddwater.dk)

Это просто приводит к электронному письму с этим содержанием:

test of parametrized mail 1user:${env.user}, 2USER:${USER}, 3$USER, 4${ENV, USER}, 5%USER%,stop

more tests
${env, user}
${env, USER}
${ENV, user}
${ENV, USER}
${user}
${USER}
${env.user}
${ENV.user}
${env.USER}
${ENV.USER}
$user
$USER
%user%
%USER%

changes
changes
subversion revision: 400
subversion revision: 400

Как видите, корректно расширяется только версия subversion. Изменения пусты для этой конкретной работы, поэтому игнорируйте это.

Как ВЫ определяете параметры в электронной почте? Какие-либо предложения? Я использую Hudson версии 1.395.


person Jesper Rønn-Jensen    schedule 03.03.2011    source источник
comment
Этот вопрос только что получил значок Tumbleweed за отсутствие голосов, ответов. Поэтому теперь я запускаю награду, чтобы узнать больше о возможностях настройки электронной почты Hudon.   -  person Jesper Rønn-Jensen    schedule 10.03.2011


Ответы (3)


Вам нужно использовать такой параметр: ${ENV, var="USER"}

А «ПОЛЬЗОВАТЕЛЬ» — это то же самое, что и «пользователь» — вам нужно давать разные имена.

person Rene Larsen    schedule 11.03.2011
comment
Большое спасибо за это. Я с нетерпением жду, чтобы попробовать это на работе на следующей неделе. - person Jesper Rønn-Jensen; 12.03.2011

Помимо того, что предлагает Рене (то есть использовать ${ENV, var="USER"}), я считаю, что вам нужно установить еще один плагин 'email-ext'. Я нашел эту информацию в какой-то другой вопрос (есть хотя нет принятого ответа).

person Grzegorz Oledzki    schedule 11.03.2011
comment
Спасибо за напоминание. Забыл написать, что плагин нужен (в любом случае я имею в виду его настройки конфигурации). - person Jesper Rønn-Jensen; 12.03.2011

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

Hudson уже знает, кто инициировал сборку (вы можете увидеть это на странице сборки), однако он не предоставляет это в переменной. Существует плагин Job-Exporter, который экспортирует эту информацию (и больше) в файл в рабочей области. Он будет находиться в собственности build.user.name.

Оттуда вы можете использовать плагин EnvInject, предоставив ему этот экспортированный properties (hudsonBuild.properties), и у вас будет переменная среды с именем build.user.name, доступная для использования в электронной почте как ${ENV, var="build.user.name"}.

person Slav    schedule 21.01.2013