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