删除Teamcity工件中的目录结构

时间:2011-10-26 12:56:31

标签: teamcity artifacts

我使用Teamcity构建不同的包,并希望将这些包保存为工件。 TeamCity中的我的工件路径如下:

%system.teamcity.build.workingDir%\**\Release**/*.wsp => Solution 

现在,TeamCity在正确构建后收集任何版本目录中的所有WSP文件。但它保存包括所有子目录,如:

How the Files are being offered

我只想在没有目录树的情况下直接在“解决方案”下使用.wsp文件。

3 个答案:

答案 0 :(得分:6)

来自TeamCity文档:

  

通配符 - 发布匹配类似Ant的通配符模式的文件(“”和   仅支持“*”通配符)。通配符应代表a   相对于构建结帐目录的路径。 文件将是   发布保留了目录的结构   通配符(不会创建与“静态”文本匹配的目录)。   也就是说,TeamCity将从第一个开始创建目录   在模式中出现通配符。

http://confluence.jetbrains.net/display/TCD65/Configuring+General+Settings#ConfiguringGeneralSettings-artifactPaths

在构建脚本(或其他最终构建步骤)中,您必须将必要的文件复制到单个文件夹并将该文件夹发布为工件

答案 1 :(得分:4)

而不是像@manojlds建议的那样复制,你可以通过修改.tsproj文件中的OutputPath或者在构建.sln时提供OutDir属性覆盖来实现某些功能(如果你的话)。请注意,这些方法都不是完美的 - 例如,TeamBuild(Visual Studio ALM工具中的CI服务器)将所有内容重定向到一个目录,这可能导致完全混乱,仅适用于最简单的情况。

答案 2 :(得分:3)

我有这个问题,我想从子目录收集各种安装文件。添加PowerShell运行器作为构建步骤是非常强大的,并且很好地解决了这个问题......

get-childitem -Recurse -Include *.wsp | Move-Item -destination .

这将在TeamCity查看工件之前将它们移动到根目录,其中像*.wsp这样的基本工件路径可以为最终输出拾取它。