如何将pom版本号包含在Jenkins电子邮件通知中?

时间:2011-11-15 14:22:10

标签: hudson jenkins hudson-plugins

如何将pom版本号包含在Jenkins电子邮件通知中?

这是为了通知测试团队有关成功构建和构建版本的信息。目前,我们只能发送一封没有任何有用内容的通用电子邮件。

我尝试了以下但没有成功。

  • grep并在后期构建步骤中导出,但我无法将其传递到电子邮件通知插件中
  • (。*)注释但它不适用于插件。

有人有任何想法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用可以使用正则表达式解析构建日志的Extended Email Notification plugin

安装插件时,首先在主Jenkins配置页面上配置其默认行为。然后根据作业自定义:转到“构建后操作”并选中“可编辑的电子邮件通知”框。使用“内容令牌参考”帮助按钮获取您可能使用的令牌。其中包括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>

答案 1 :(得分:0)

只需使用以下属性:

${POM_VERSION}