2010-04-20 44 views
2

我想在TeamCity 5.1電子郵件通知中包含已更改文件的列表,這些通知在構建成功或失敗後發送給我的團隊。我已閱讀Customizing Notifications in TeamCity 5.1文檔,並查看了在config \ _notifications \ email文件夾中找到的.ftl模板文件,但我沒有找到可用模板變量或備用模板示例的列表。我能夠在TeamCity的早期版本中包含已更改文件的列表(我認爲它被稱爲「文件更改」),但我在TeamCity 5.1中沒有運氣。有任何想法嗎?在TeamCity 5.1中顯示更改文件通知

+0

你有沒有得到這個解決?我想要做同樣的事情,而且我遇到了完全相同的問題。 – msigman 2011-03-16 14:33:26

回答

0

您提到的幫助鏈接引用了變量var.buildChanges。 我相信這正是你要找的。

+0

感謝您的迴應。我可能會做一些非常愚蠢的事情,但var.buildChanges似乎提供了更改的摘要(提交者,評論和已更改的文件數量),但似乎並未提供修改後的文件列表。 – 2010-08-03 18:08:04

7

我能夠在TeamCity 6中得到這個工作,所以我不知道它是否適用於5.1,但這是我通過閱讀幫助文檔中的示例所做的。

編輯common.ftl添加

<#macro build_changes_files bean> 
    <#-- @ftlvariable name="buildType" type="jetbrains.buildServer.serverSide.SBuildType" --> 
    <#-- @ftlvariable name="bean" type="jetbrains.buildServer.notification.impl.ChangesBean" --> 
    <#-- @ftlvariable name="webLinks" type="jetbrains.buildServer.serverSide.WebLinks" --> 
    <div> 
    <#assign modNum=bean.modificationsNumber/> 
    <#if (modNum > 0)> 
     <hr> 
     <div> 
     <#assign changesLink><a href='${webLinks.getViewChangesUrl(bean.build)}'>${modNum} change<@plural modNum/></a></#assign> 
     Changes included (${changesLink})<#if bean.changesClipped>, 
     only ${bean.modifications?size} are shown</#if>. 
     </div> 
     <#list bean.modifications as mod> 
     <#assign pers><#if mod.personal>(personal build)</#if></#assign> 
     <#assign description=mod.description/> 
     <#if description?length == 0><#assign description='&lt;no comment&gt;'/></#if> 
     <div> 
      <#assign modLink><a href='${webLinks.getChangeFilesUrl(mod.id, mod.personal)}'>${mod.changes?size} file<@plural mod.changes?size/></a></#assign> 
      Change ${mod.displayVersion} ${pers} by ${mod.userName} (${modLink}): 
      <i>${description?trim}</i>. 
      <br> 
      <br> 
      <b>Files:</b> 
      <br> 
      <ul> 
      <#list mod.getFilteredChanges(buildType) as change> 
      <li>${change.getRelativeFileName()} - ${change.getChangeTypeName()} 
      </li> 
      </#list> 
      </ul> 
     </div> 
     </#list> 
    </#if> 
    </div> 
</#macro> 
在* build_started.ftl *

然後(或其他適當的FTL文件),在這裏我要列舉了修改過的文件,我把:

<@common.build_changes_files var.changesBean/> 
+0

該解決方案也適用於TeamCity 7。我試過了。 – 2014-09-26 15:05:44