跳到元数据的末尾
进入元数据的开始

概述

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

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

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

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

在CI服务器上运行构建

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

支持插件

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

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

Bintray插件

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

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

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

构建集成的Artifactory开源版本vs. Artifactory Pro

当使用Artifactory的OSS版本时,构建集成包括通用BuildInfo视图以及使用Artifactory的REST api遍历和查看构建信息的能力。

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



构建信息存储库

从Artifactory版本6.6中提供的Build Info存储库,是一个本地存储库,将您的Build Info json文件存储为工件,为您提供:

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

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

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

使用人工构建信息存储库

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

清理政策

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

迁移到人工构建信息存储库

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

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

(默认:100)

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

artifactory.migration.job.batchSize

(默认值:10)

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

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

(默认值:2)

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

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

artifactory.migration.job.sleepIntervalMillis

[默认值:5000毫秒]

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

[默认值:300000毫秒]

只有当集群完全升级并且所有节点运行相同的最低要求版本(6.6.0)时,build-info存储库迁移才能开始。

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



删除构建

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


检查的构建

构建和构建历史

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

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

权限

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

构建级别信息

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

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

Build Info Details屏幕分为三个面板:

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

有三类信息:

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

一般建造资料

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

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

发布模块

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

模块工件和依赖项

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

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

模块工件和依赖项

环境

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

构建环境

问题

问题提供Artifactory、Jenkins CI服务器和JIRA问题跟踪器之间的集成。在使用Jenkins CI时,如果要设置启用JIRA集成Jenkins Artifactory Plugin中的选项问题选项卡将显示此版本已解决的任何JIRA问题。

构建问题

许可证

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

许可证


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

未经批准的

发现的许可证尚未批准使用

批准许可

您可以批准在中使用的许可证管理选项卡下配置| 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插件-发布管理
(明星)竹工艺品插件-发布管理





  • 没有标签