【问题标题】:Remove directory structure in Teamcity's artifacts删除 Teamcity 工件中的目录结构
【发布时间】:2015-06-12 15:15:21
【问题描述】:

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

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

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

我只想要 .wsp-File 直接在“解决方案”下,没有目录树。

【问题讨论】:

    标签: teamcity artifacts


    【解决方案1】:

    来自 TeamCity 文档:

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

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

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

    【讨论】:

    • 我写了一个递归收集文件的工具。那完成了工作。不是最好的解决方案,而是“一个”解决方案
    • @Max Klinger:有一个叫做 PowerShell 的工具可以很好地制作'这样的工具:D
    • 也许吧。但是用 CS 编程更快 :)=
    • 如果您进一步查看该 TC 文档,有一些示例,其中一个似乎说您可以展平文件夹结构(子目录中的所有 *.x 文件都转到目标的根目录): target//.txt => docs* — publish all the txt files found in the target directory and its subdirectories. The files will be available in the build artifacts under the docs directory. 不知道那个语法是什么。当然可以在 Windows TC 服务器上工作。
    • @slolife 提到的例子是target/**/*.txt=> docs,但它并没有扁平化目录结构,它只是在名为docs 的目录下复制该结构。在 TeamCity 文档的其他地方,解释说当使用通配符(***)时,“文件将被发布,保留通配符匹配的目录结构(与“静态”文本匹配的目录不会被创建)。也就是说,TeamCity 将从模式中第一次出现的通配符开始创建目录。”
    【解决方案2】:

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

    【讨论】:

    • 想解释一下为什么这值得一票否决?为什么不赞成另一个?或者我错过了什么?你认为它应该是评论吗?在投反对票时尝试解释您的想法是个好主意。
    【解决方案3】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-06
      • 1970-01-01
      • 2023-03-10
      • 2012-10-14
      • 1970-01-01
      • 2011-07-10
      相关资源
      最近更新 更多