概述
Artifactory通过竹子Artifactory插件提供与竹子的紧密集成。除了管理工件到Artifactory的有效部署之外,该插件还允许您捕获有关已部署工件、已解决依赖项、与Bamboo构建运行相关的环境数据等的信息。这些数据可以发布到Artifactorybuild-info.使用Artifactory发布构建信息的任务。
竹Artifactory插件目前提供对Maven,Gradle,艾薇,NPM, Docker和NuGet通过专门的Artifactory任务为每个包管理器。G还支持通过专用任务使用File Specs下载和上传eneric。
来源
竹子Artifactory插件是GitHub上的一个开源项目你可以自由浏览和分叉。
下载
插件的兼容性:
竹Artifactory插件经过了与当前版本的竹的兼容性的全面测试。当竹的新版本发布时,市场将竹Artifactory插件列为不兼容的,然而,由于我们定期更新插件,它很可能与竹的补丁或小版本升级保持兼容性。我们建议在升级生产环境之前,先在分阶段环境中测试新的Bamboo和插件版本。
版本
升级到版本2。X来自版本1。插件的X需要新的安装步骤。请参考安装插件为更多的细节。
版本 | 下载链接 | 兼容性 |
3.2.10 | 下载 | 竹子7.2.3 - 8.2.x |
3.1.0 | 下载 | 竹7.0。x - 7.1.2 |
3.0.1 | 下载 | 竹6.10.x |
2.7.2 | 下载 | 竹6.9.x-6.10.x |
2.7.0 | 下载 | 竹6.9.x |
2.6.3 | 下载 | 竹6.8。x - 6.9.x |
2.6.2 | 下载 | 竹6.5。x - 6.7.x |
2.5.1 | 下载 | 竹6.4.x |
2.4.1 | 下载 | 竹6.2。x - 6.3.x |
2.2.0 | 下载 | 竹6.1.x |
2.1.1 | 下载 | 竹. x |
魅惑 | 下载 | 竹5.14.x |
1.13.0 | 下载 | 竹5.14.x |
1.11.2 | 下载 | 竹5.13.x |
1.11.1 | 下载 | 竹5.12.x |
1.10.3 | 下载 | 竹5.11.x |
1.10.1 | 下载 | 竹5.10.x |
1.9.2 | 下载 | 竹5.9.x |
1.7.7 | 下载 | 竹5.8.x |
安装插件
需求
- Artifactory 2.2.5或更高版本。为了获得最佳的效果和优化的通信,我们建议使用Artifactory的最新版本。
- Artifactory职业是高级功能所必需的,例如许可证管理的商品和增强构建集成.
- Maven 3。
- Gradle 4.10或更高版本。
- Ant和Ivy 2.1.0或更高版本。
升级到版本2。版本1.x
如果您目前使用的是2.0.0以下版本的插件,并且想要升级到2.0.0或更高版本,您需要将Artifactory配置数据迁移到type 2插件所期望的格式,步骤如下:
1.如果你还没有使用该插件的1.13.0版本,请先升级到该版本。
2.从竹管理| Artifactory插件,按"将数据迁移到v2”按钮。
3.删除1.13.0版本的插件并重新启动Bamboo。
4.现在可以安装版本2了。根据下面的说明。
安装版本2. x
从2.0.0版本开始,Bamboo Artifactory Plugin作为第2类插件发布。您可以阅读关于安装类型2插件的竹子的文档安装插件.
安装版本1. x
删除旧版本
如果您使用的是旧版本的插件,请确保在升级到新版本之前将其删除
美元BAMBOO_INSTALLATION_HOME / atlassian-bamboo / web - inf / lib
文件夹并重新启动Bamboo。
有关更多细节,请参考Bamboo文档安装插件类型1附加组件.
配置
要使用Bamboo Artifactory插件,您需要在Bamboo的服务器配置中设置Artifactory服务器。然后,您可以设置一个项目构建器,将工件和构建信息部署到一个已配置的Artifactory服务器上的存储库中。
配置系统范围的Artifactory服务器
为了使Artifactory服务器对项目配置可用,它们必须在管理程序| Artifactory插件.
新闻新的Artifactory服务器要添加新服务器,请填写所需字段并按save。
配置Artifactory任务
Artifactory通用解析任务
Artifactory Generic Resolve任务允许从Artifactory下载文件文件规格.它允许收集构建信息,这些信息可以稍后由Artifactory Publish Build Info任务发布到Artifactory。
- 在2.2.0版本之前,可以通过遗留模式指定工件模式,但在2.2.0版本中已弃用。
- 在2.7.0版本之前创建的任务直接将构建信息发布到Artifactory,而不是通过发布构建信息任务。
Artifactory通用部署任务
Artifactory Generic Deploy任务允许将文件上传到Artifactory文件规格.它允许收集构建信息,这些信息可以稍后由Artifactory Publish Build Info任务发布到Artifactory。
- 在2.2.0版本之前,可以通过遗留模式指定工件模式,但在2.2.0版本中已弃用。
- 在2.7.0版本之前创建的任务直接将构建信息发布到Artifactory,而不是通过发布构建信息任务。
Artifactory NuGet和Artifactory .NET Core任务
取决于你是否使用NuGet或net核心CLI来构建你的NuGet包Artifactory NuGet而且Artifactory。net核心任务支持使用NuGet或。net Core客户端与Artifactory。任务允许在构建期间从Artifactory解析NuGet依赖关系,同时收集构建信息,这些信息稍后可以使用Artifactory发布构建信息任务
- 根据您使用的客户端,请确保nuget或dotnet客户端包含在构建代理的PATH中。
- 如果您使用dotnet客户端,请注意支持。net Core 3.1.200或以上SDK。
收集生成问题任务
由各种Artifactory任务收集的构建信息,也可以包括作为构建的一部分处理的问题。问题列表由Bamboo从git提交消息中自动收集。这要求项目开发人员使用一致的提交消息格式,其中包括问题ID和问题摘要,例如:
BAP-1364 -用空格替换制表符
然后可以在Artifactory中的Builds UI中查看问题列表,以及问题跟踪系统中的问题链接。
收集问题所需的信息是通过JSON配置提供的。该配置可以作为文件或JSON字符串提供。
下面是一个问题集合配置示例。
{“版本”:1、“问题”:{“trackerName”:“JIRA”、“正则表达式”:“(. + - [0 - 9]+)\ s - \ s(+)”,“keyGroupIndex”:1、“summaryGroupIndex”:2,“trackerUrl”:“http://my-jira.com/issues”,“总”:“真正的”、“aggregationStatus”:“发布”}}
配置文件属性:
属性名 |
描述 |
---|---|
总 |
如果希望所有构建都包含以前构建的问题,则设置为true。 |
aggregationStatus |
如果aggregate被设置为true,该属性指示应该在多长时间内聚合问题。在上面的示例中,问题将从以前的构建中聚合,直到找到具有RELEASE状态的构建。RELEASE状态设置为使用Bamboo Artifactory插件添加的build Promotion功能进行升级时的版本。 |
keyGroupIndex | 用于检索问题密钥的正则表达式中的捕获组索引。在上面的例子中,将索引设置为“1”将得到检索bap - 1364从这个提交消息: BAP-1364 -用空格替换制表符 |
正则表达式 | 用于匹配git提交消息的正则表达式。表达式应该包含两个捕获组—用于问题键(ID)和问题摘要。在上面的例子中,正则表达式匹配提交消息,示例如下: BAP-1364 -用空格替换制表符 |
summaryGroupIndex | 正则表达式中用于检索问题摘要的捕获组索引。在上面的例子中,将索引设置为“2”将得到检索的这个提交消息的示例问题: BAP-1364 -用空格替换制表符 |
trackerName | 问题跟踪系统的名称(类型)。例如,JIRA。该属性可以取任何值。 |
trackerUrl | 问题跟踪URL。此值用于构建到Artifactory构建UI中的问题的直接链接。 |
版本 | 模式版本用于内部使用。不改变! |
发布构建信息任务
的建立信息发布Task已在2.7.0版本中添加。该任务发布计划中以前的Artifactory任务收集的构建信息,如果它们被配置为收集构建信息。计划包括建立信息发布任务中,在“生成结果”区域中可以找到已发布的生成信息的链接。
计划2.7.0版本之前创建的任务,在不使用publish Build Info任务的情况下将Build - Info发布到Artifactory。
Artifactory x射线扫描任务
竹Artifactory插件通过JFrog Artifactory与JFrog Xray集成,允许您扫描构建工件的漏洞和其他问题。如果发现问题或漏洞,您可以选择让构建作业失败。此集成需要JFrog Artifactory v4.16及以上版本和JFrog Xray v1.6及以上版本。
要使x射线扫描构建,您需要配置一个看使用正确的过滤器指定哪些构件和漏洞应该触发警报,并为该手表设置“失败构建作业操作”。您可以阅读更多关于CI/CD与Xray集成的信息在这里.
接下来,添加Artifactory x光扫描任务到您的计划并配置它。
要用x射线扫描构建,构建信息必须已经发布到Artifactory。因此,您应该确保一个或多个先前的计划任务被配置为收集构建信息,并且构建信息被发布到Artifactory。
使用文件规范
文件规格以JSON格式指定。它们被用在通用的解决而且通用的部署任务和在竹子部署任务中,文件规范被用于Artifactory下载任务,以指定要从Artifactory解析的依赖项或要部署到它的工件。
你可以用以下方式使用文件规格:
- 在您的SCM中管理它们,然后在构建过程中,将它们与其他源一起拉到工作区中。如果您选择了这个选项,您应该在“上传规范源”或“下载规范源”字段中选择“文件”选项,并在您的工作空间中指定文件规范的相对路径。
- 将File Spec JSON保存为作业配置的一部分。如果选择此选项,则应在“上传规范源”或“下载规范源”字段中选择“作业配置”选项,并在“文件路径”字段中指定工作空间中的文件规范JSON内容。
您可以读取文件规范模式在这里.
部署项目
竹Artifactory插件也支持竹部署项目(阅读更多关于部署项目的信息)在这里).
- 的Artifactory下载task从Artifactory下载工件。要下载的工件使用文件规格.
- 的Artifactory部署task收集与部署任务相关联的构建计划共享的构建工件,并将它们上传到Artifactory。此外,通过Artifactory Download任务下载的工件也可用于部署。
“工件下载”任务
的工件下载任务必须先于Artifactory部署部署作业流中的任务。
运行一个构建
一旦完成了项目构建器的设置,就可以运行它了。Artifactory插件在构建结束时开始,并且:
- 一次性将所有构件部署到选定的目标存储库中(与Maven/Ivy使用的在每个模块构建结束时部署相反)。
- 将Artifactory构建信息部署到所选服务器,该服务器提供Artifactory中构建的完全可追溯性,链接回到Bamboo中的构建。
将搜索参数
你可以定义附加到构建信息和插件部署的构件的参数。
要定义一个参数,请在政府去构建资源|全2022世界杯阿根廷预选赛赛程局变量,填写一个键/值对,然后单击保存。
可用的参数类型有:
buildInfo.property。*
所有以这个前缀开头的属性将被添加到build-info的根属性中。artifactory.deploy。*
-所有以这个前缀开头的属性将被附加到任何已部署的生产工件上。
使用属性文件
您可以将插件指向一个属性文件,而不是手动定义属性。
为此,定义一个名为buildInfoConfig.propertiesFile
并将其值设置为属性文件的绝对路径。
给定的路径和文件应该出现在正在运行构建代理的计算机上,没有服务器.
使用竹变量重写计划值
Artifactory Plugin支持覆盖计划配置中的变量,如部署者凭证、解析器凭证、存储库等。
如果您希望覆盖下表中指定的任何值,您需要通过UI将它们配置为Bamboo变量,或者将它们作为查询参数附加到REST URL请求。
当给这些Bamboo变量赋值时,它将覆盖作业配置。
http://:8085/rest/api/latest/queue/ vmn - job ?
在上面的例子中,我们使用CURL远程调用Bamboo计划。我们为这个特定的请求设置部署者用户名和部署者密码。
注意,我们添加了“bamboo.varaible”查询参数的前缀。
注意,只有在特定任务支持时才会应用发送的值。例如:目前Artifactory Gradle任务不支持Resolver凭证,因此如果发送这些值将被忽略。
参数名称 | 描述 | 支持工作 |
---|---|---|
artifactory.override.deployer.username |
部署人员的用户名 | Maven, Gradle, Ivy, Generic部署 |
artifactory.override.deployer.password |
部署人员密码 | Maven, Gradle, Ivy, Generic部署 |
artifactory.override.resolver.username |
解析器的用户名 | Maven,通用的解决 |
artifactory.override.resolver.password |
解析器密码 | Maven,通用的解决 |
artifactory.override.resolve.repo |
解决存储库 | Maven, Gradle |
artifactory.override.deploy.repo |
部署存储库 | Maven, Gradle, Ivy, Generic部署 |
artifactory.task.override.jdk |
如果设置为true,检查的值artifactory.task.override.jdk.env.var。 如果用环境变量填充该变量, 使用该环境变量的值作为Build JDK路径。 如果artifactory.task.override.jdk.env.var如果没有定义,则使用JAVA_HOME的值来生成JDK。 |
Maven, Gradle,艾薇 |
artifactory.task.override.jdk.env.var |
存储另一个环境变量的名称,该变量的值应该用于生成JDK。 | Maven, Gradle,艾薇 |
发布管理
Artifactory Plugin为发布管理和推广提供了强大的功能。详情请参阅竹Artifactory插件-发布管理.