【问题标题】:Aggregating built artifacts in Teamcity to a single zip将 Teamcity 中的构建工件聚合到单个 zip
【发布时间】:2011-01-24 08:20:56
【问题描述】:

目标:设置一个 ant/cmd 脚本,它将来自多个构建的工件打包到一个 zip 中。我计划通过设置依赖于这几个项目的最终构建配置来做到这一点。

所以我的所有构建配置都成功构建并在构建服务器上生成构建工件@.BuildServer\system\artifacts{PROJECT}{several configurations}.. 在我的“工件聚合”配置中,我需要能够引用什么以及这些工件在哪里使用可以在我的 ant/cmd 脚本中使用的变量。即我有配置 w、x 和 y 的项目 A;我将如何定义/构造这些配置(w、x、y)的变量,这些变量可以被构建配置 z 引用。我查看了当前的 Teamcity 文档,即http://www.jetbrains.net/confluence/display/TCD3/System+Properties+of+a+Build+Configuration#SystemPropertiesofaBuildConfiguration-ref;但我发现这不能解决我的查询。

有没有一种方法可以为配置 w、x 和 y 设置我的工件路径,以使最终任务更容易?

完成这项任务的最佳方法是什么?欢迎任何想法。

【问题讨论】:

  • 您不能简单地将工件发布到同一个公共位置吗?通过 msbuild 复制任务还是通过 TC publishArtifacts?
  • 您能否在回答中详细说明您将如何通过 TC 执行此操作?这就是我正在寻找的,但没有那么多文档支持“设置工件路径”。我可以将构建服务器设置为只允许构建“zip 工件”构建配置的代理;这样就更容易确定工件的位置,但是我仍然很难找到最新的,因为这个目录被分配了一个随机数。我可以这样做,但我最终会在 cmd 行中破解它,我不想这样做.. 必须有一个更整洁的选择。
  • 好的,我只是尝试使用以下工件路径创建一个 zip:PROJECT.zip|PROJECT\bin\Release|***=>PROJECT\bin ..什么也没发生,我跟着 teamcity此处的文档:jetbrains.net/confluence/display/TCD3/Build+Artifact 其中指出:file_name|directory_name|Ant-like wildcard [ => target_directory ] 我希望找到构建的 Release 文件夹的 zip。在服务器上的 artifacts 目录中。 p.s.我想念 maven2
  • 是的,当然。但对不起我的英语)

标签: build zip teamcity artifacts


【解决方案1】:

我们就是这样做的。

  1. 创建 n+1 配置(ZIP_ALL)并为所有 n 个项目添加依赖项,请参阅Dependency trigger
  2. 创建网络共享 \\server\Build 以聚合项目的构建结果
  3. 你需要清理那个文件夹的策略) - 我们简单地删除所有,我们的队友使用 SVN rev 名称创建子文件夹(TC 使用修订值设置变量)
  4. 为每个配置创建 msbuild(或 ant 或 rake)脚本,该脚本将构建并压缩(如果需要)来自构建的所有输出
  5. 将 zip 文件或完整的输出文件夹复制到公共位置 (\\server\Build) 请参阅 Copy Task
  6. 为 ZIP_ALL 配置创建 ant 脚本,简单地将所有文件压缩到公共位置
  7. 通过Artifact Publishing 将其发布到 TeamCity

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多