生成未更改时排除TeamCity中的目录

生成未更改时排除TeamCity中的目录,teamcity,artifacts,teamcity-7.1,Teamcity,Artifacts,Teamcity 7.1,我想从工件中排除一个目录,但仅当构建没有更改时。可能吗 我的工件有1GB,但没有那个目录只有25MB。我的构建中有一半以上没有这样的更改: 这只是我的一个项目。我没有足够的空间来储存所有的东西 我试过这样的方法: Binaries=>Binaries.zip -:Binaries/DirToExclude/*/.* <changes count="3"> <change href="/httpAuth/app/rest/changes/id:217404" id=

我想从工件中排除一个目录,但仅当构建没有更改时。可能吗

我的工件有1GB,但没有那个目录只有25MB。我的构建中有一半以上没有这样的更改: 这只是我的一个项目。我没有足够的空间来储存所有的东西

我试过这样的方法:

Binaries=>Binaries.zip
-:Binaries/DirToExclude/*/.*
<changes count="3">
   <change href="/httpAuth/app/rest/changes/id:217404" id="217404" version="b6b97a0d7789d97df6df908ab582ebb723235f43" webLink="http://teamcity.my-domain.com/viewModification.html?modId=217404&personal=false"/>
   <change href="/httpAuth/app/rest/changes/id:217403" id="217403" version="064ecef5552ec2fb7875d7c26fe54cdf94b67bec" webLink="http://teamcity.my-domain.com/viewModification.html?modId=217403&personal=false"/>
   <change href="/httpAuth/app/rest/changes/id:217402" id="217402" version="9bc3a34c952059bbfc7bebeb79ba5a3c894ef555" webLink="http://teamcity.my-domain.com/viewModification.html?modId=217402&personal=false"/>
</changes>

但即使没有我现在要问的条件,它也不起作用:(

在末尾添加一个生成步骤,检查是否有任何更改。如果没有更改,则删除工件,否则将其保留。您可以使用TC8将生成步骤的执行策略设置为始终
,即使发出了生成停止命令

您可以使用TeamCity REST API确定是否还有任何更改。例如:

curl -u /httpAuth/app/rest/changes?build=id:%teamcity.build.id%
可以返回如下内容:

Binaries=>Binaries.zip
-:Binaries/DirToExclude/*/.*
<changes count="3">
   <change href="/httpAuth/app/rest/changes/id:217404" id="217404" version="b6b97a0d7789d97df6df908ab582ebb723235f43" webLink="http://teamcity.my-domain.com/viewModification.html?modId=217404&personal=false"/>
   <change href="/httpAuth/app/rest/changes/id:217403" id="217403" version="064ecef5552ec2fb7875d7c26fe54cdf94b67bec" webLink="http://teamcity.my-domain.com/viewModification.html?modId=217403&personal=false"/>
   <change href="/httpAuth/app/rest/changes/id:217402" id="217402" version="9bc3a34c952059bbfc7bebeb79ba5a3c894ef555" webLink="http://teamcity.my-domain.com/viewModification.html?modId=217402&personal=false"/>
</changes>

在上述情况下,哪个将返回
3
,但如果没有更改,它将返回
0

,因此,问题是A)此生成配置正在执行并存储新的工件,而实际上没有更改;B)您有1GB的不经常更改的工件,即使这些更改被隔离到“其他”25MB,它们仍会被存储?我会让这个构建只在发生更改时执行,也许会把这个1GB目录放到另一个构建配置中,而这个配置执行的频率要低得多。这并不完全是我想要的,但它有很大帮助:)我同意。这不太理想,但我不知道只有在构建中发生更改时才能实现发布工件。