2017-02-15 8 views
2

Я хочу добавить некоторые параметры из веб-крючков в почту, отправленную из Jenkins. Я пробовал решения, предоставляемые в StackOverflow и в других местах. Пока нет успеха.Невозможно получить доступ к настраиваемым параметрам, переданным скрипту сборки jenkins

У меня есть следующее место:

  1. Проверено This is a parameterized build
  2. Сценарий сборки выглядит http://JENKINS_URL/job/android02/buildWithParameters?token=<My Token>&PARAM=<My Custom Params>
  3. В содержимом письма, я пытаюсь получить доступ к пользовательским параметрам по ${PARAM}, $PARAM. enter image description here По почте, однако, я не получаю значения, которые я устанавливаю. Если я установил значения по умолчанию для PARAM, он будет правильно отображаться в полученной почте. Я попробовал URL-адрес http://JENKINS_URL/job/android02/build?token=<My Token>&PARAM=<My Custom Params>, а также подумал, если он работает. Почта отправляется как Editable email Notification config.

В принципе, все работает, за исключением того, что я не могу получить доступ к настраиваемым параметрам, которые я прошел через опцию Trigger builds remotely.

Edit1: Если я оставить значение по умолчанию, скажем, test для параметра, PARAM в почту получил, я могу видеть, отображается test. Но мне нужно получить значение, которое я передаю в скрипте сборки.

ответ

1

С "всплывающей подсказке", который вы получаете, когда вы нажимаете на знак вопроса рядом с "":

$ {ENV, Var = "VARIABLENAME"}

Раскрывается в переменной окружения (указанный здесь как VARIABLENAME) из среды сборки. Обратите внимание, что это не включает переменные, установленные самими скриптами сборки, только те, которые установлены Jenkins и другими плагинами.

Итак, используйте ${ENV,var="PARAM"}.

enter image description here

+0

Спасибо за ответ. Но, к сожалению, это не сработало. Я добавил '$ {ENV, var =" PARAM "}' в почтовый контент и все еще в полученной почте, он был пуст. Если я сохраню какое-то значение по умолчанию для 'PARAM', то по почте я получу, чтобы увидеть это значение. Я хочу получить значение, которое я устанавливаю в скрипте. В подсказке, которую вы цитируете, действительно говорилось: * Обратите внимание, что это не включает в себя какие-либо переменные, установленные самими скриптами сборки, только те, которые установлены Jenkins и другими плагинами. * Так значит ли это, что я не могу этого сделать? – ranjjose

+1

Действительно странно. Просто, чтобы я правильно понял, если вы установите значение по умолчанию, значение по умолчанию будет отображаться в сообщении. Но когда вы запускаете с параметром, это не видно? Можете ли вы получить доступ к значению на этапе сборки, например. это значение параметра, доступное на шаге Shell или Batch script? –

+0

Благодарим за комментарий. Дело в том, что я довольно новичок в создании Jenkins. Я просто расскажу, что я делаю. (1) Контроллер версии подключен к скрипту python, которому он передает набор информации (например, последний коммит, коммиттер, ревизия и т. Д.). (2) Сценарий читает требуемую информацию с шага 1 и запускает скрипт сборки, добавляя его к параметру 'PARAM' queryparam (' http: // JENKINS_URL/job/android02/buildWithParameters? Токен = XXXXXX & PARAM = blahblah'). Я не знаете о шаге * Batch script *, о котором вы говорите. – ranjjose