我正在尝试在teamcity中设置构建工件,但是我遇到了问题。这是工件命令:
Services\Windows\ApiRequestProcess\ApiRequestLoggerService\bin\Release\* => F:\BuildArtifacts\Services\ApiRequestLogger
这是其中一个错误:
16:43:33]: [Publishing artifacts] Paths to publish: [Services\Windows\ApiRequestProcess\ApiRequestLoggerService\bin\Release\* => F:\BuildArtifacts\Services\ApiRequestLogger, teamcity-info.xml]
[16:43:33]: [Publishing artifacts] Sending files
[16:43:34]: Failed to upload build artifact due to error: java.io.FileNotFoundException: F:\TeamCity\.BuildServer\system\artifacts\API Request Logger Service\API Request Logger Service Build\536\F:\BuildArtifacts\Services\ApiRequestLogger\ApiRequestCore.dll (The filename, directory name, or volume label syntax is incorrect)
有什么想法吗?
答案 0 :(得分:7)
您的问题是TeamCity将工件存储在其数据目录中,因此您无法指定绝对位置。你需要那个位置的工件吗?如果是这样,你将不得不运行一个任务来从artifacts文件夹中复制它们(有一个rest api来帮助你下载工件)
来自docs
TeamCity将工件存储在磁盘上 可以的目录结构 直接访问(例如,通过 将操作系统配置为 通过网络共享目录)。 工件存储在 / system / artifacts文件夹。 存储格式如下所述 TeamCity数据目录部分。建立 工件未在TeamCity中存档 保持原样(未压缩)。
答案 1 :(得分:1)
@redquare是正确的。 TeamCity正在归档与您的构建相关的工件。在TeamCity之前,我也按照你描述的方式做到了;)
真正的问题是你为什么要这样做(因为你的构建已经存档)?我猜对了......
如果您正在进行部署或其他构建的可访问性,那么还有另一种选择......在TeamCity中说:依赖关系/工件依赖关系。您可以在另一个CI构建中使用CI构建的输出,或者以直接的方式使用部署构建。
有关详细信息,请参阅我的回答here。