${CHANGES} не работает в плагине mail-ext, если задание jenkins управляется сценарием bash

Я настроил работу Дженкинса для создания проекта. Я использую плагин email-ext для отправки уведомлений о сборке с целью показать, кто что сделал, и изменился путь к файлам. Но, к сожалению, я ничего не получаю. Я считаю, что причина в том, что в разделе «Управление исходным кодом» я устанавливаю значение «Нет». Мой сценарий оболочки, который я использую для управления сборкой, отвечает за возврат копии кода на основе тега CVS и запуск maven для выполнения сборки. В ext-email я использую следующий синтаксис

${CHANGES_SINCE_LAST_SUCCESS, reverse=true, showPaths=true,
format="\n====\nChanges for Build # %n\n%c\n",
changesFormat="\n[%r] %d %a %m %p\n"}

То же самое с CHANGES: ${CHANGES, showPaths=true}

Есть ли способ заставить CHANGES и CHANGES_SINCE_LAST_SUCCESS работать, если опция None используется в разделе «Управление исходным кодом»?

Спасибо за вашу помощь.


person jennifer Brown    schedule 17.07.2012    source источник


Ответы (1)


Плагин EmailExt получает эту информацию от Jenkins. Поскольку Jenkins имеет доступ к этой информации только через свои плагины SCM, ответ «нет», вы не можете сделать это без указания параметра SCM.

Есть две вещи, которые вы можете сделать:

(1) Сделайте это вручную. Что в случае с CVS, если я правильно помню, означает, что рабочая копия все равно должна быть проверена. (2) Используйте вариант извлечения/обновления SCM, но сохраните рабочую копию на стороне, не используя ее в сборке. Вы будете использовать в два раза больше дискового пространства, но в настоящее время дисковое пространство не является проблемой.

Кстати, почему вы используете CVS? SVN, GIT и Mercurial бесплатны.

person malenkiy_scot    schedule 17.07.2012
comment
Большое спасибо, Скотт. Это то, что я использовал, чтобы обойти это ограничение. Что касается CVS? Не заставляйте меня начинать, пожалуйста.... Это длинная история, но.... Еще один вопрос, так как мы здесь... Можно ли передать модуль(-и) (содержимое текстового поля) под CVS (управление исходным кодом) как переменная ENV для сценария оболочки? Я пробовал это, но, похоже, это не работает. А как насчет параметров, введенных пользователем во время сборки? Я хотел бы передать их в раздел «Модули», а затем проверить источник на основе этого параметра. Есть ли обходной путь? Пока у меня ничего не получается..... - person jennifer Brown; 19.07.2012
comment
@jenniferBrown, вы используете плагин EnvInject для передачи переменных среды? Все, что меньше этого, скорее всего, не сработает. Дополнительные сведения см. в следующих ответах: stackoverflow.com/a/10626193/1178189, stackoverflow.com/a/10430129/1178189, stackoverflow.com/ a/10415311/1178189, stackoverflow.com/a/10715705/1178189, stackoverflow.com/a/10626180/1178189 - person malenkiy_scot; 19.07.2012