我想在TeamCity 5.1电子邮件通知中包含已更改文件的列表,该列表会在成功或失败的构建后发送给我的团队。我查看了Customizing Notifications in TeamCity 5.1文档,我查看了config \ _notifications \ email文件夹中找到的.ftl模板文件,但是我没有找到可用模板变量或备用模板样本的列表。我能够在TeamCity的早期版本中包含已更改文件的列表(我认为它被称为“使用文件进行更改”),但我对使用TeamCity 5.1没有任何好运。有什么想法吗?
答案 0 :(得分: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='<no comment>'/></#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/>
答案 1 :(得分:0)
您提到的帮助链接引用了变量var.buildChanges。 我相信这正是你所寻找的。 p>