Build Artifact(构建工件)
构建工件是由构建产生的文件。 通常,这些包括分发包,WAR 文件,报告,日志文件等等。 在创建构建配置时,您需要在 配置常规设置 页面指定构建工件的路径。
构建工件存储
TeamCity 包含一个集成的轻量级构建工件仓库。 艺术品要么储存在 服务器可访问的文件系统 上,要么储存在 外部存储设备 上。
在构建完成后,TeamCity 会根据指定的工件路径或路径模式在构建签出目录中搜索工件。 匹配的文件然后会被上传("发布")到 TeamCity 服务器,通过网络用户界面可以下载这些文件,或者可以在其他构建中使用 工件依赖项。 您可以选择何时发布构件:适用于所有已完成的构建,仅适用于成功的构建,或适用于所有构建,甚至是中断的构建。
要下载构建的工件,请转到构建结果页面的 Artifacts选项卡,或使用项目或构建配置的 Overview 页面以及 TeamCity 列出构建的页面上的工件图标 。
在内置存储的情况下,TeamCity 将构件保存在磁盘上的一个目录结构中,可以直接访问(例如,通过配置操作系统在网络上共享该目录)。 存储格式在 TeamCity 数据目录中有所描述。 艺术品存储在服务器上,"原样"保留,无需额外压缩。 默认情况下,构建工件存储在 <TeamCity 数据目录\>/system/artifacts
目录下,可以进行修改。
您可以 配置外部工件 存储来替换内置的存储空间。
构建工件可以在构建仍在运行时上传到服务器。 为了指导 TeamCity 上传工件,应修改构建脚本以发送服务消息。
您可以通过 REST API 自动化下载工件。
隐藏的工件
除了用户定义的构建工件之外,TeamCity 也会为内部目的生成并发布一些隐藏的构建工件。
例如,对于 Maven 构建,TeamCity 会创建一个包含构建过程中收集的 Maven 特定数据的 maven-build-info.xml
文件。 文件的内容随后被用来在构建结果中的 Maven 构建信息选项卡上展示 Maven 数据。
TeamCity 在工件根目录的 .teamcity
目录中存储隐藏的工件。
工件 依赖关系 不会考虑隐藏的 artifacts,除非它们在其模式中明确指定了 .teamcity
。
除非在清理范围中明确指定了 .teamcity
,否则清理构建工件不会删除隐藏的构建工件。
隐藏工件的示例:
maven-build-info.xml.gz
— Maven 构建数据。 用于在 Maven Build Info 标签页上显示数据。属性
目录 - 存储在代理上为构建计算的属性。 构建前后,有一些实际的属性存在。 这些会在构建结果的 Properties 标签页上显示。.NETCoverage
— 原始的 .NET 覆盖数据(例如,用于在 VS 插件中打开 dotCover 数据)。coverage_idea
— 原始的 IntelliJ IDEA 覆盖率数据(例如,用于在 IDEA 中打开覆盖率)。
检索隐藏的工件
默认情况下,隐藏的工件不会在 Artifacts 标签页上显示。 如果当前构建中存在任何这样的内容,您可以通过点击 显示隐藏的构建工件 来查看它们。
要浏览或单独下载构建结果,请使用构建结果的树状结构。 要下载整个 .teamcity
目录,点击屏幕右侧的 全部下载(.zip)。
隐藏工件
要隐藏一个工件,您需要将其发布在 .teamcity
目录下。
在 代理上的 工件缓存
由构建发布的所有工件均存储在 <构建代理主目录>\system\.artifacts_cache
的代理的工件缓存中,这在某些情况下有助于加快工件依赖性的速度。然而,取决于工件的大小,清理以及其他设置,工件缓存可能会导致代理上的磁盘空间不足。 您可以配置将发布的工件存储在代理缓存中。