概述
Artifactory通过Bamboo Artifactory插件提供了与Bamboo的紧密集成。除了管理工件到Artifactory的高效部署外,该插件还允许您捕获关于已部署工件的信息、已解决的依赖关系、与Bamboo构建运行相关的环境数据等。该数据可以作为发布到Artifactorybuild-info.使用工件发布构建信息的任务。
Bamboo Artifactory插件目前提供对Maven,Gradle,艾薇,NPM, Docker和NuGet通过这些包管理器的专用的Artifactory任务。Generic下载和上传使用文件规格也支持通过专门的任务。
来源
竹编插件是GitHub上的一个开源项目你可以自由浏览和分叉。
下载
插件的兼容性:
Bamboo Artifactory插件已经完全测试了与当前版本的兼容性,当插件发布时。当新版本的Bamboo发布时,Marketplace将Bamboo Artifactory Plugin列为不兼容的,然而,由于我们定期更新插件,它可能会与Bamboo的补丁或小版本升级保持兼容。我们建议在升级生产环境之前,先在登台环境中测试新的Bamboo和插件版本。
版本
升级到版本2。版本1中的X。插件的X需要新的安装步骤。请参考安装插件为更多的细节。
版本 | 下载链接 | 兼容性 |
3.2.9 | 下载 | 竹子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配置数据迁移到type2插件所期望的格式:
1.如果您还没有使用该插件的1.13.0版本,请先升级到该版本。
2.从竹节管理|人工插件,按下"迁移数据到v2”按钮。
3.移除插件版本1.13.0并重启Bamboo。
4.现在可以安装版本2了。X根据下面的说明。
安装版本2. x
从2.0.0版本开始,Bamboo Artifactory Plugin作为二类插件发布。您可以阅读关于安装类型2插件的竹子的文档安装插件.
安装版本1. x
删除旧版本
如果您有一个旧版本的插件,请确保在升级到一个新版本之前删除它
美元BAMBOO_INSTALLATION_HOME / atlassian-bamboo / web - inf / lib
文件夹并重新启动Bamboo。
欲了解更多详情,请参阅Bamboo文档安装插件类型为1的插件.
配置
要使用Bamboo Artifactory插件,您需要在Bamboo的服务器配置中设置您的Artifactory服务器。然后,您可以设置一个项目构建器,将工件和构建信息部署到一个配置好的工件服务器上的存储库中。
配置系统范围的Artifactory服务器
为了使工件服务器对项目配置可用,它们必须在下面定义竹管理|管理应用程序|人工插件.
新闻新的Artifactory服务器要添加新服务器,请填写所需字段并按save。
配置Artifactory任务
工件通用解析任务
Artifactory Generic Resolve任务允许使用从Artifactory下载文件文件规格.它允许收集构建信息,这些信息稍后可以通过Artifactory Publish Build Info任务发布给Artifactory。
- 在2.2.0版本之前,通过遗留模式指定工件模式是可能的,但在2.2.0版本中已被弃用。
- 在2.7.0版本之前创建的任务,直接向Artifactory发布构建信息,而不是通过publish Build Info任务。
工件通用部署任务
Artifactory Generic Deploy任务允许上传文件到Artifactory使用文件规格.它允许收集构建信息,这些信息稍后可以通过Artifactory Publish Build Info任务发布给Artifactory。
- 在2.2.0版本之前,通过遗留模式指定工件模式是可能的,但在2.2.0版本中已被弃用。
- 在2.7.0版本之前创建的任务,直接向Artifactory发布构建信息,而不是通过publish Build Info任务。
Artifactory NuGet和Artifactory .NET Core任务
取决于你是否使用NuGet或net核心CLI构建你的NuGet包Artifactory NuGet而且Artifactory。net核心使用带有Artifactory的NuGet或. net Core客户端来支持任务。这些任务允许在构建期间解析来自Artifactory的NuGet依赖项,同时收集构建信息,这些信息稍后可以使用工件发布构建信息任务
- 根据您使用的客户端,请确保nuget或dotnet客户端包含在构建代理的PATH中。
- 如果你使用dotnet客户端,请注意。net Core 3.1.200或以上SDK是支持的。
收集生成问题任务
由各种Artifactory任务收集的构建信息,还可以包括作为构建的一部分被处理的问题。问题列表是由Bamboo自动从git提交消息中收集的。这要求项目开发人员使用一致的提交消息格式,其中包括问题ID和问题摘要,例如:
BAP-1364 -将制表符替换为空格
然后可以在Artifactory的build 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状态的构建。当使用Bamboo Artifactory Plugin添加的build Promotion功能提升时,RELEASE状态被设置为一个构建。 |
keyGroupIndex | 用于检索问题键的正则表达式中的捕获组索引。在上面的例子中,将索引设置为“1”将检索bap - 1364从这个提交消息: BAP-1364 -将制表符替换为空格 |
正则表达式 | 用于匹配git提交消息的正则表达式。表达式应该包括两个捕获组—用于问题键(ID)和问题摘要。在上面的例子中,正则表达式匹配提交消息,如下所示: BAP-1364 -将制表符替换为空格 |
summaryGroupIndex | 正则表达式中用于检索问题摘要的捕获组索引。在上面的例子中,将索引设置为“2”将检索的这个提交消息的示例问题: BAP-1364 -将制表符替换为空格 |
trackerName | 问题跟踪系统的名称(类型)。例如,JIRA。这个属性可以取任何值。 |
trackerUrl | 问题跟踪URL。该值用于在Artifactory构建UI中构建指向问题的直接链接。 |
版本 | 模式版本用于内部使用。不改变! |
发布构建信息任务
的建立信息发布在2.7.0版本中添加了Task。任务发布计划中先前的Artifactory任务收集的构建信息,如果它们被配置为收集构建信息的话。的计划建立信息发布任务中,发布的构建信息的链接可以在“构建结果”区域中找到。
计划2.7.0版本之前创建的任务,发布Build - Info到Artifactory,而不使用publish Build Info任务。
人工x射线扫描任务
Bamboo Artifactory插件通过JFrog Artifactory与JFrog x射线集成,允许您扫描构建工件的漏洞和其他问题。如果发现问题或漏洞,您可以选择使构建作业失败。这个集成需要JFrog Artifactory v4.16及以上版本和JFrog Xray v1.6及以上版本。
为了扫描构建,您需要配置一个看使用正确的过滤器,该过滤器指定哪些工件和漏洞应该触发警报,并为该监视设置Fail Build Job Action。您可以阅读更多关于CI/CD与x射线集成的内容在这里.
接下来,添加Artifactory x光扫描任务到您的计划并配置它。
要用x射线扫描一个构建,构建信息必须已经发布到Artifactory。因此,您应该确保前面的一个或多个计划任务被配置为收集构建信息,并将构建信息发布到Artifactory。
使用文件规范
文件规范用JSON格式指定。它们被用于通用的解决而且通用的部署在竹部署任务中,文件规格被使用在Artifactory下载任务,以指定要从工件解析的依赖项或要部署到它的工件。
你可以通过以下方式使用File Specs:
- 在SCM中管理它们,然后在构建期间,将它们与其他源一起拉到工作区。如果您选择了这个选项,您应该在“上传规格源”或“下载规格源”字段中选择“文件”选项,并在您的工作空间中指定文件规格的相对路径。
- 将File Spec JSON保存为作业配置的一部分。如果您选择了这个选项,您应该在“上传规格源”或“下载规格源”字段中选择“作业配置”选项,并在您的工作空间中的“文件路径”字段中指定文件规格JSON内容。
您可以阅读文件规范模式在这里.
部署项目
Bamboo Artifactory插件还支持Bamboo Deployment项目(阅读更多关于部署项目的信息)在这里).
- 的Artifactory下载任务从Artifactory下载工件。下载的构件是使用定义的文件规格.
- 的Artifactory部署task收集由与部署任务关联的构建计划共享的构建工件,并将它们上传到Artifactory。此外,通过Artifactory Download任务下载的构件也可以用于部署。
“工件下载”任务
的工件下载任务必须在Artifactory部署部署作业流中的任务。
运行一个构建
一旦完成了项目构建器的设置,就可以运行它了。Artifactory插件从构建的末尾开始:
- 一次性将所有构件部署到选定的目标存储库(与Maven/Ivy使用的在每个模块构建结束时部署不同)。
- 将artixbuild -info部署到选定的服务器,该服务器提供Artifactory中构建的完全可追溯性,并提供了指向Bamboo中构建的链接。
将搜索参数
您可以定义应该附加到构建信息和插件所部署的工件的参数。
要定义一个参数,请使用under政府去|全局变量2022世界杯阿根廷预选赛赛程填写一个键/值对,然后单击保存。
可用的参数类型有:
buildInfo.property。*
所有以这个前缀开始的属性将被添加到build-info的根属性中。artifactory.deploy。*
-所有以该前缀开头的属性将被附加到任何已部署的生产工件。
使用属性文件
您可以将插件指向属性文件,而不是手动定义属性。
为此,定义一个名为buildInfoConfig.propertiesFile
并将其值设置为属性文件的绝对路径。
给定的路径和文件应该出现在运行构建代理的机器上,没有服务器.
使用Bamboo Variables重写Plan值
Artifactory Plugin支持覆盖计划配置中的变量,如部署器凭证、解析器凭证、存储库等。
如果您希望覆盖下表中指定的任何值,您需要通过UI将它们配置为Bamboo变量,或者将它们作为查询参数附加到REST URL请求。
当给这些Bamboo变量赋值时,它将重写作业配置。
:8085/rest/api/latest/queue/MVN-JOB? stage&executeallstages&bamboo .variable.artifactory. overoverride .deployer.username=new_username& BAMBOO .variable.artifactory. overoverride .deployer.password=new_password"
在上面的示例中,我们使用CURL远程调用一个Bamboo计划。我们为此特定请求设置了Deployer用户名和密码。
注意,我们添加了“bamboo.varaible”查询参数的前缀。
注意,发送的值只有在特定的任务支持它们时才会被应用。例如:当前的Artifactory Gradle任务不支持Resolver凭据,因此这些值在发送时会被忽略。
参数名称 | 描述 | 支持工作 |
---|---|---|
artifactory.override.deployer.username |
部署人员的用户名 | Maven, Gradle, Ivy,通用部署 |
artifactory.override.deployer.password |
部署人员密码 | Maven, Gradle, Ivy,通用部署 |
artifactory.override.resolver.username |
解析器的用户名 | Maven,通用的解决 |
artifactory.override.resolver.password |
解析器密码 | Maven,通用的解决 |
artifactory.override.resolve.repo |
解决存储库 | Maven, Gradle |
artifactory.override.deploy.repo |
部署存储库 | Maven, Gradle, Ivy,通用部署 |
artifactory.task.override.jdk |
如果设置为true,检查的值artifactory.task.override.jdk.env.var。 如果使用环境变量填充该变量, 使用该环境变量的值作为Build JDK路径。 如果artifactory.task.override.jdk.env.var如果没有定义,则使用Build JDK的JAVA_HOME值。 |
Maven, Gradle,艾薇 |
artifactory.task.override.jdk.env.var |
存储另一个环境变量的名称,该变量的值应该用于构建JDK。 | Maven, Gradle,艾薇 |
发布管理
Artifactory Plugin为发布管理和推广提供了一个强大的特性。详情请参阅Bamboo Artifactory插件-发布管理.