Получение шаблонов email-ext script для работы с конвейером Дженкинса
Недавно я преобразован в Jenkins 2.x, и я экспериментирую с потоком конвейера, но я не могу заставить модуль электронной почты-ext работать с шаблонами groovy script. Хотя мой стандартный поток все еще работает нормально, если я попробую следующее, я получаю сообщение об ошибке с неожиданным токеном SCRIPT
emailext mimeType: 'text/html', replyTo: 'xxxx', subject: "${env.JOB_NAME} - Build# ${env.BUILD_NUMBER} - ${env.BUILD_STATUS}", to: 'xxxx', body: "${SCRIPT, template='regressionfailed.groovy'}"
Я знаю, что на раннем этапе были проблемы с расширением токена, но, похоже, из последних обновлений вики они исправлены. Я также не получаю никаких токенов для любых токенов. Есть ли хорошая ссылка, чтобы эта работа снова работала. Я хотел бы переключиться на поток конвейера, но шаблон электронной почты с расширением токена является ключом к работе.
Ответы
Ответ 1
Нет проблем с использованием emailext в декларативном конвейере. Но ваш script не сможет получить доступ к параметру "build. Result" правильно, потому что он еще не закончен. Как в стандартном script groovy -html.template.
Изменить: на самом деле вы можете получить доступ к build.result, если вы сами вручную установили его.
Итак, лучше добавить этап в конце декларативного конвейера так:
stage('Send email') {
def mailRecipients = "[email protected]"
def jobName = currentBuild.fullDisplayName
emailext body: '''${SCRIPT, template="groovy-html.template"}''',
mimeType: 'text/html',
subject: "[Jenkins] ${jobName}",
to: "${mailRecipients}",
replyTo: "${mailRecipients}",
recipientProviders: [[$class: 'CulpritsRecipientProvider']]
}
Также обратите внимание, что если вы используете свой собственный script, вы не можете назвать его "groovy -html.template" или "groovy -text.template", потому что они по умолчанию являются emailext (поэтому файл будет даже доступ к ним). См. "Script контент" здесь.
Ответ 2
Сегодня столкнулась с той же проблемой, видимо, имея тело, определенное до того, как emailext, похоже, делает трюк:
def emailBody = '${SCRIPT, template="regressionfailed.groovy"}'
def emailSubject = "${env.JOB_NAME} - Build# ${env.BUILD_NUMBER} - ${env.BUILD_STATUS}"
emailext(mimeType: 'text/html', replyTo: 'xxxx', subject: emailSubject, to: 'xxxx', body: emailBody)
Помните, что вам может потребоваться повторить части вашего шаблона.