Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Build 将Teamcity中构建的构件聚合到单个zip_Build_Zip_Teamcity_Artifacts - Fatal编程技术网

Build 将Teamcity中构建的构件聚合到单个zip

Build 将Teamcity中构建的构件聚合到单个zip,build,zip,teamcity,artifacts,Build,Zip,Teamcity,Artifacts,目标:设置一个ant/cmd脚本,将来自多个构建的工件打包到一个zip中。我计划通过设置最终构建配置来实现这一点,该配置将依赖于这几个项目 因此,我所有的构建配置都成功构建并在构建服务器@.BuildServer\system\artifacts{PROJECT}{几个配置}上生成构建工件。。在我的“工件聚合”配置中,我需要能够引用这些工件使用的变量,这些变量可以在我的ant/cmd脚本中使用。i、 e.我有配置为w、x和y的项目A;如何定义/构造这些配置(w、x、y)的I变量,这些变量可以被构

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

因此,我所有的构建配置都成功构建并在构建服务器@.BuildServer\system\artifacts{PROJECT}{几个配置}上生成构建工件。。在我的“工件聚合”配置中,我需要能够引用这些工件使用的变量,这些变量可以在我的ant/cmd脚本中使用。i、 e.我有配置为w、x和y的项目A;如何定义/构造这些配置(w、x、y)的I变量,这些变量可以被构建配置z引用。我查看了当前的Teamcity文档,即:;但我发现这并不能解决我的疑问

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

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

我们就是这样做的

  • 创建n+1配置(ZIP_ALL)并为所有n个项目添加依赖项请参见
  • 创建网络共享\\server\Build以聚合项目的生成结果
  • 您需要该文件夹的清理策略)-我们只需删除所有文件,我们的队友就可以使用SVN rev name(TC sets变量和修订值)创建子文件夹
  • 对于每个配置,创建msbuild(或ant或rake)脚本,该脚本将生成并压缩(如果需要)生成的所有输出
  • 将zip文件或完整的输出文件夹复制到公共位置(\\server\Build)请参阅
  • 为ZIP_ALL配置创建ant脚本,只需将所有文件压缩到公共位置
  • 通过发布到TeamCity

  • 您不能简单地将工件发布到相同的公共位置吗?通过msbuild复制任务或通过TC publishArtifacts?能否在回答中详细说明如何通过TC执行此操作?这就是我想要的,但是没有那么多文档支持“设置工件路径”。。我可以将buildserver设置为只允许构建“zip工件”构建配置的代理;这样可以更容易地确定工件的位置,但是我仍然很难找到最新的工件,因为这个目录被分配了一个随机数。我可以这样做,但我最终会在cmd行中破解它,这是我不想做的。。必须有一个更整洁的替代方案。好的,我只是尝试使用工件路径创建一个zip:PROJECT.zip | PROJECT\bin\Release |***=>PROJECT\bin..但什么都没有发生,我遵循了teamcity文档的说明:文件名|目录名| Ant like通配符[=>target\u目录]我希望能找到构建的发布文件夹的zip。在服务器上的artifacts目录中。p、 我想念Maven2是的,当然。但是对不起,我的英语不好)