Version control TeamCity,如何获取已编辑文件的名称
我正在使用TeamCity,我对它还不熟悉。我已经向TeamCity添加了一个构建配置,并创建了一个VCS根目录以连接到它 但是,我的项目有一个特殊要求,即检测VCS根位置中更改的特定文件,并在构建步骤中使用该文件。我相信这可以在TeamCity实现,但我不知道如何实现Version control TeamCity,如何获取已编辑文件的名称,version-control,teamcity,Version Control,Teamcity,我正在使用TeamCity,我对它还不熟悉。我已经向TeamCity添加了一个构建配置,并创建了一个VCS根目录以连接到它 但是,我的项目有一个特殊要求,即检测VCS根位置中更改的特定文件,并在构建步骤中使用该文件。我相信这可以在TeamCity实现,但我不知道如何实现 有什么帮助吗?谢谢,听起来您需要一个指定VCS触发器规则的VCS触发器,以便在有人更改特定文件时运行生成配置。有一些很好的例子说明了如何做到这一点。如果您试图在一个特定文件上触发生成,请尝试以下操作: +:foo/bar.txt
有什么帮助吗?谢谢,听起来您需要一个指定VCS触发器规则的VCS触发器,以便在有人更改特定文件时运行生成配置。有一些很好的例子说明了如何做到这一点。如果您试图在一个特定文件上触发生成,请尝试以下操作:
+:foo/bar.txt
这将从触发器规则中排除所有文件,然后在foo目录中包括bar.txt。路径相对于存储库的根(不包括前面的斜杠)。如果有人修改foo/bar.txt,构建配置将被触发运行
VCS触发规则还支持模式匹配和各种其他选项。查看文档。要更改文件名,我就是这么做的。多亏了萨姆·琼斯 我使用了
System.TeamCity.build.changedFiles.file
变量,如下所示
复制“%system.teamcity.build.changedFiles.file%”changelog.txt
注意:
teamcity.build.changedFiles.file
不起作用。如果我有多个文件,比如bar.txt、bar1.txt、bar2.txt,您需要使用system.teamcity.build.changedFiles.file
?我可以为它们中的每一个添加触发器吗?这可以在不知道目录中的文件名的情况下完成吗?如果我按照+:foo/*.txt
的方式进行操作,我是否能够获得已编辑的特定文件名?是的,您可以添加任意数量的文件。您可以执行+:bar.txt
,+:bar1.txt
,+:bar2.txt
等操作,也可以使用+:foo/**
指定目录中的所有文件。有两个预定义的生成参数可能有用。一个是描述如何触发构建的teamcity.build.triggeredBy
。另一个是teamcity.build.changedFiles.file
,它是指向文件的路径,其中包含有关生成中已更改文件的信息。您可以阅读有关这些参数的更多信息。非常感谢Sam,这对我帮助很大。或者,您可以在应用程序的生成步骤中使用“-DchangedFiles=%system.teamcity.build.changedFiles.file%”添加其他参数,并在应用程序中检索为系统属性