跳到元数据的末尾
转到元数据的开始

概述

Artifactory支持构建集成,无论您是在当前使用的通用CI服务器上运行构建,还是在基于云的CI服务器上运行构建,或者在没有CI服务器的情况下独立运行构建。

将Artifactory集成到构建生态系统中提供了重要的信息,通过部署的工件、依赖项和构建环境上的信息的可见性,这些信息支持完全可复制的构建。

Artifactory Build Integration Add-on提供了一组插件,您可以与行业标准CI系统和构建工具一起使用,使您能够:

  • 在Artifactory中查看已发布的所有构建及其构建结果。
  • 探索每个构建的模块,包括发布的工件和相应的依赖项。
  • 获取有关构建环境的信息。
  • 检查一个特定的工件是否是构建所需要的,或者是否是构建的结果,并在应该移除这样的工件时提供警报。
  • 将特定构建中的所有工件和/或依赖项视为单个单元,并执行批量操作,如移动、复制、导出等。
  • 接收构建服务器和Artifactory页面中构建和工件信息之间的双向链接。

在CI服务器上运行构建

通过将CI服务器视为常规构建客户端,可以轻松地将Artifactory添加到持续集成构建生态系统中,这样它就可以解析来自Artifactory的依赖项,并将工件部署到Artifactory中的专用存储库中。

支持插件

目前支持的CI服务器,每个都通过特定的插件:

所有这些CI服务器上支持的构建工具有:Maven 3号和2号Gradle常春藤/蚂蚁net, MSBuild以及通用的构建工具。有关详细信息,请参考每个CI服务器插件的文档。

Bintray插件

除了Artifactory支持的插件之外,还有Gradle Bintray插件它提供了Gradle构建与JFrog Bintray之间的直接集成。

运行独立构建或基于云的CI服务器

在过去几年中,基于云的CI服务器越来越受欢迎。一些例子是,CircleCI特拉维斯CIdrone.ioCodeship.问题是,这些都不是传统方式的“可插拔”。因此,要在基于云的构建服务器上运行构建,以及在使用Artifactory解析依赖项和上传构建以及详尽的构建信息的同时运行独立构建,您可以使用JFrog CLI,它提供了广泛的构建集成功能。详情请参阅构建集成请参见《JFrog CLI用户指南》。

为Artifactory开源版本和Artifactory专业版构建集成

当使用Artifactory的OSS版本时,Build Integration包括GenericBuildInfo查看以及使用Artifactory的REST api遍历和查看构建信息的能力。

Artifactory Pro扩展了这些功能,并提供模块工件和依赖项视图、构建的存储库视图,以及导出和操作构建项的能力。



构建信息存储库

从Artifactory 6.6版本开始,构建信息存储库是一个本地存储库,它将构建信息json文件存储为工件,为您提供:

  • 用户/组权限管理相当于在构建名称上使用包含/排除模式来管理存储库的权限
  • 构建信息复制对于其他实例,因为它们作为构件存储在存储库中
  • 改进的可访问性构建信息json文件和整体性能构建模块的

每当一个新的构建被上传到Artifactory(通过CI服务器插件,直接使用build REST API或从Artifactory UI)时,它将自动被部署到这个默认值artifactory-build-info存储库。

构建信息json文件应该上传到存储库的根目录。Artifactory将使用以下结构自动将它们放入存储库:artifactory-build-info>(构建名称)>[build number]-[部署时间戳].json

使用artifactory-build-info存储库

artifactory-build-info默认情况下,自动创建并使用存储库。它不能被移除。删除它将导致删除所有构建信息,并将重新创建一个新的默认构建信息存储库。

清理政策

如果您有现有的清理策略(在Artifactory User Plugins中定义),可以根据策略从本地存储库中删除工件,那么它们也会影响artifactory-build-info存储库和应相应更新。将此存储库从清除策略中排除,以确保不会删除构建信息文件。

迁移到artifactory-build-info Repository

迁移过程可以通过以下系统属性进行配置。迁移将在主节点上运行。

属性名
函数
artifactory.migration.job.dbQueryLimit

(默认:100)

指定每次迁移作业查询数据库中存在但尚未包含在构建信息存储库值中的构建信息json项时应该检索的行数。

artifactory.migration.job.batchSize

(默认值:10)

构建信息json构件以批方式并发部署,然后启动一个睡眠周期。此属性指定每个批处理中工件的数量。

artifactory.build.info.migration.job.queue.workers

(默认值:2)

指定应该执行实际构建信息构件更新的并发线程的数量。

每个并发的工件更新都将导致从数据库读取构建信息json,然后将其上传到构建信息仓库。

artifactory.migration.job.sleepIntervalMillis

[默认值:5000毫秒]

指定在每批更新之后启动的睡眠周期的持续时间。
artifactory.migration.job.waitForCluster.sleepIntervalMillis

[默认值:300000毫秒]

只有当集群完全升级并且所有节点都运行相同的最低要求版本(6.6.0)时,才可以开始构建信息存储库迁移。

此参数指定主节点在每次检查所有其他节点的当前版本之间等待的时间。



删除构建

若要从UI中删除构建,请将鼠标悬停在某个版本上并单击“删除”。


检查的构建

构建和构建历史

将其输出部署到Artifactory的所有CI服务器项目都可以在构建浏览器模块。

选择一个构建项以显示反映CI服务器中的构建历史的该构建的所有运行,以及完整的构建级别信息。

权限

要查看构建信息,您必须在某个存储库路径上具有“部署”权限。

构建级别信息

你可以选择构建的名字向下钻取到特定的构建。这将显示有关构建的详细信息,并使您能够将其与以下各节中描述的另一个构建进行比较。

构建页面分为3个部分:构建ID,一般信息

构建信息详细信息屏幕分为三个面板:

  • 构建ID面板显示所选生成的所有版本。
  • 水平面板顶部显示有关所选版本的基本信息。
  • 构建细节.选择一个文件,在右侧面板中查看其详细信息。

有三类信息:

  1. 关于构建及其环境的一般构建信息。
  2. 构建模块和他们一起工件和依赖项
  3. JSON格式的构建信息的通用视图。

一般构建信息

水平面板显示有关构建的一般信息:

代理
管理构建的CI服务器
构建代理
所使用的构建工具的特定版本
开始
开始构建时的时间戳
持续时间
构建的持续时间
主要
触发此构建的因素。这可能是一个CI服务器用户,也可能是另一个构建
Artifactory主要
触发此构建的Artifactory用户

发布模块

此选项卡显示作为构建结果发布到Artifactory中的模块,以及它们所包含的工件和依赖项的数量。

模块构件和依赖项

选择已构建的已发布模块将显示其构件和依赖项。通过单击相应的列标头,可以按类型或范围对这些列进行分组。

您可以单击任何项目直接下载,或单击其回购路径树浏览器

模块构件和依赖项

环境

Environment选项卡显示为所选构建定义的属性和环境设置的广泛列表。如果需要重新运行构建,可以使用它们精确地重现环境。

构建环境

问题

问题提供Artifactory、Jenkins CI服务器和JIRA问题跟踪器之间的集成。使用Jenkins CI时,如果要设置启用JIRA集成选项,即问题选项卡将显示本次构建已解决的所有JIRA问题。

构建问题

许可证

许可证TAB显示所有工件及其依赖项的详细许可分析的结果。

许可证


总结Line显示具有以下状态的工件的数量:

未经批准的

找到的许可证未被批准使用

批准许可

您可以批准在管理选项卡下配置| license。详情请参阅许可证管理的商品

没有找到
没有找到工件的许可要求。
未知的
工件需要Artifactory不知道的许可
中性
已经为工件找到了一个未批准的许可要求,但是有另一个已批准的许可。
批准
工件的所有许可要求在Artifactory中得到批准。

构建差异

Diff选项卡允许您将所选的构建与任何其他构建进行比较。控件中选择构建号后选择要比较的构建字段中,Artifactory显示所检测到的构建之间的所有差异,包括添加的新工件、删除的依赖项、更改的属性等等。

构建差异

版本历史

Release History选项卡显示了所选构建版本里程碑的列表。

构建信息JSON

通用的BuildInfo视图

此选项卡显示原始文件BuildInfoArtifactory中构建信息的JSON表示形式。这些数据可以通过REST API访问或用于调试,并且也是可用的在Artifactory OSS版本中。

构建信息JSON


导出和操作生成项

您可以在存储库浏览器中查看构建,并将其作为一个整体及其所有构件和依赖项执行操作。例如,您可以将它提升到另一个存储库、复制它或将它导出到磁盘。

导出和操作构建


构建的存储库视图

中的工件时树浏览器,您可以看到与该工件相关联的所有构建,无论是直接的还是作为依赖项构建选项卡

此外,如果您试图删除工件,您将收到一个警告,该构建将不再是可复制的。

在存储库浏览器中查看构建

即使您在Artifactory中移动或复制工件,工件与构建的关联也会保留,因为该关联链接到工件的校验和,无论其位置如何,校验和都保持不变。


幕后故事

在幕后,CI服务器的Artifactory插件执行两个主要任务:

  1. 它从Artifactory中的解析库中解析所有依赖项。
  2. 它在构建结束时将所有构件作为原子操作部署到Artifactory,从而保证在构建多模块项目时进行更加一致的部署
    (Maven和Ivy在构建周期结束时部署每个模块。如果其中一个模块失败,这可能导致部分部署)。
  3. 它发送一个BuildInfo在部署结束时,通过REST API将数据对象传递给Artifactory。这是一个结构化的JSON对象,以标准和开放的格式包含有关构建环境、工件和依赖项的所有数据。

你可以找到最新的BuildInfojava绑定工件在这里来源在这里


发布管理

Artifactory通过插件来支持发布管理詹金斯TeamCity竹子

运行构建时使用MavenGradle工作中使用颠覆、Git或必然地作为您的版本控制系统,您可以手动执行一个版本构建,允许您:

  • 更改发行版和下一个开发版本的值

  • 选择要将发布部署到的目标暂存库

  • 为发行版创建一个VCS标签

分阶段的发布构建可以稍后进行提升回滚,在Artifactory中更改它们的发布状态,并选择将构建工件移动到不同的目标存储库。

在Artifactory中,所有构建状态更改活动(分级、提升、回滚等)的历史记录都会被记录和显示以获得完整的可追溯性。

要了解更多关于特定于CI服务器的发布管理的信息,请参考:

(明星)Jenkins文档中的发布管理
(明星)TeamCity Artifactory插件-发布管理
(明星)竹工艺品插件-发布管理





  • 没有标签