Как включить номер версии pom в уведомление по электронной почте Jenkins? - PullRequest
2 голосов
/ 15 ноября 2011

Как включить номер версии pom в уведомление по электронной почте Jenkins?

Это должно уведомить группу тестирования об успешной сборке и версии сборки.На данный момент мы можем отправлять только общее электронное письмо без какого-либо полезного контента.

Я пробовал следующее, но ни один из этих успехов.

  • grep и экспорт на этапе пост-сборки, но я не могу передать это в плагин уведомления по электронной почте
  • (. *), Но он не работает дляплагин.

У кого-нибудь есть идеи?

Ответы [ 2 ]

1 голос
/ 31 января 2012

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

Когда вы устанавливаете плагин, вы сначала настраиваете его поведение по умолчанию на главной странице конфигурации Jenkins. Затем вы настраиваете его для каждой работы: перейдите в Действия после сборки и установите флажок «Редактируемое уведомление по электронной почте». Используйте кнопку справки «Content Token Reference», чтобы получить токены, которые вы можете использовать. Среди них будет токен BUILD_LOG_REGEX с пояснениями по его использованию.

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

Вот фактическая тестовая сборка (для Windows), которая выводит строку boo_ $ BUILD_ID_foo на вывод, плагин анализирует эту строку и отправляет электронное письмо, которое выглядит следующим образом:

Here we go, Joe:
boo_2012-01-30_23-04-29_foo

config.xml для задания:

<?xml version='1.0' encoding='UTF-8'?>
<project>
  <actions/>
  <description></description>
  <keepDependencies>false</keepDependencies>
  <properties/>
  <scm class="hudson.scm.NullSCM"/>
  <canRoam>true</canRoam>
  <disabled>false</disabled>
  <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
  <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
  <triggers class="vector"/>
  <concurrentBuild>false</concurrentBuild>
  <builders>
    <hudson.tasks.BatchFile>
      <command>echo boo_%BUILD_ID%_foo
</command>
    </hudson.tasks.BatchFile>
  </builders>
  <publishers>
    <hudson.plugins.emailext.ExtendedEmailPublisher>
      <recipientList>youemail@company.com</recipientList>
      <configuredTriggers>
        <hudson.plugins.emailext.plugins.trigger.FailureTrigger>
          <email>
            <recipientList></recipientList>
            <subject>$PROJECT_DEFAULT_SUBJECT</subject>
            <body>$PROJECT_DEFAULT_CONTENT</body>
            <sendToDevelopers>false</sendToDevelopers>
            <includeCulprits>false</includeCulprits>
            <sendToRecipientList>true</sendToRecipientList>
          </email>
        </hudson.plugins.emailext.plugins.trigger.FailureTrigger>
        <hudson.plugins.emailext.plugins.trigger.SuccessTrigger>
          <email>
            <recipientList></recipientList>
            <subject>$PROJECT_DEFAULT_SUBJECT</subject>
            <body>$PROJECT_DEFAULT_CONTENT</body>
            <sendToDevelopers>false</sendToDevelopers>
            <includeCulprits>false</includeCulprits>
            <sendToRecipientList>true</sendToRecipientList>
          </email>
        </hudson.plugins.emailext.plugins.trigger.SuccessTrigger>
      </configuredTriggers>
      <contentType>text/plain</contentType>
      <defaultSubject>$DEFAULT_SUBJECT</defaultSubject>
      <defaultContent>Here we go, Joe:
${BUILD_LOG_REGEX, regex=&quot;^boo.*?foo.*?$&quot;,showTruncatedLines=false}

</defaultContent>
    </hudson.plugins.emailext.ExtendedEmailPublisher>
  </publishers>
  <buildWrappers/>
</project>
0 голосов
/ 21 сентября 2015

Просто используйте следующее свойство:

${POM_VERSION}
...