概述
Artifactory通过Bamboo Artifactory插件提供了与Bamboo的紧密集成。除了管理工件到Artifactory的有效部署,插件还允许您捕获有关已部署的工件、已解决的依赖关系、与Bamboo构建运行相关的环境数据等信息。这些数据可以发布到Artifactorybuild-info.使用Artifactory发布构建信息的任务。
Bamboo Artifactory插件目前提供对Maven,Gradle,艾薇,NPM, Docker和NuGet通过为每个包管理器提供专用的Artifactory任务。G通过专用任务也支持使用File Specs的eneric下载和上传。
来源
竹Artifactory插件是GitHub上的一个开源项目你可以自由浏览和分叉。
下载
插件的兼容性:
Bamboo Artifactory插件已经完全测试了与当前发布的Bamboo版本的兼容性。当Bamboo的新版本发布时,市场将Bamboo Artifactory插件列为不兼容的,然而,由于我们定期更新插件,它很可能与Bamboo的补丁或小版本升级保持兼容性。我们建议在升级生产环境之前,先在登台环境中测试新的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。x从版本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了。X根据下面的说明。
安装版本2.x
从2.0.0版本开始,Bamboo Artifactory Plugin作为第2类插件发布。您可以阅读有关安装类型2插件的竹文档用于安装插件.
安装版本1.x
删除旧版本
如果您使用的是旧版本的插件,请确保在升级到新版本之前将其删除
美元BAMBOO_INSTALLATION_HOME / atlassian-bamboo / web - inf / lib
文件夹和重新启动竹。
有关详细信息,请参阅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版本之前创建的任务,直接将Build - Info发布到Artifactory,而不是通过publish Build Info任务。
Artifactory通用部署任务
Artifactory Generic Deploy任务允许上传文件到Artifactory使用文件规格.它允许收集构建信息,稍后可以通过Artifactory Publish Build Info任务将其发布到Artifactory。
- 在2.2.0版本之前,可以通过遗留模式指定工件模式,但在2.2.0版本中已弃用。
- 在2.7.0版本之前创建的任务,直接将Build - Info发布到Artifactory,而不是通过publish Build Info任务。
Artifactory NuGet和Artifactory .NET Core任务
取决于你是否使用NuGet或.NET Core CLI来构建您的NuGet包Artifactory NuGet而且Artifactory .NET Core任务支持使用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状态的构建。当使用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中的问题的直接链接。 |
版本 | 模式版本仅供内部使用。不要改变! |
发布生成信息任务
的发布构建信息Task已在2.7.0版本中添加。如果之前的Artifactory任务被配置为收集构建信息,该任务将发布计划中之前的Artifactory任务收集的构建信息。对于包括发布构建信息任务中,在Build Results区域中可以找到到已发布的构建信息的链接。
计划在2.7.0版本之前创建的任务,在不使用publish Build Info任务的情况下将Build - Info发布到Artifactory。
Artifactory x射线扫描任务
Bamboo Artifactory插件通过JFrog Artifactory与JFrog x射线集成,允许您扫描构建工件的漏洞和其他问题。如果发现问题或漏洞,您可以选择让构建作业失败。此集成需要JFrog Artifactory v4.16及以上版本和JFrog Xray v1.6及以上版本。
要使用x射线扫描构建,您需要配置看使用正确的过滤器,指定哪些工件和漏洞应该触发警报,并为该手表设置“失败构建作业操作”。您可以阅读更多关于CI/CD与Xray集成的信息在这里.
接下来,添加Artifactory x射线扫描任务到您的计划并配置它。
要用x射线扫描构建,构建信息必须已经发布到Artifactory。因此,您应该确保前面的一个或多个计划任务被配置为收集构建信息,并且构建信息被发布到Artifactory。
使用文件规格
文件规格以JSON格式指定。它们被用于通用的解决而且通用的部署任务和在竹部署任务中,文件规格用于Artifactory下载任务,指定要从Artifactory解析的依赖项或要部署到它的工件。
您可以通过以下方式之一使用文件规格:
- 在您的SCM中管理它们,然后在构建期间,将它们与其他源一起拉到工作区中。如果您选择了这个选项,您应该在“Upload spec source”或“Download spec source”字段中选择“File”选项,并在您的工作空间中指定文件规范的相对路径。
- 将File Spec JSON保存为作业配置的一部分。如果您选择了这个选项,您应该在“上传规范源”或“下载规范源”字段中选择“作业配置”选项,并在“文件路径”字段中指定工作空间中的File spec JSON内容。
您可以读取File Spec模式在这里.
部署项目
Bamboo Artifactory插件也支持Bamboo部署项目(阅读更多关于部署项目的信息)在这里).
- 的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变量赋值时,它将覆盖作业配置。
curl -ubamboo-user: BAMBOO -password -XPOST "http://:8085/rest/api/latest/queue/MVN-JOB?stage&executeAllStages&bamboo.variable.artifactory.override.deployer.username=new_user & BAMBOO .variable.artifactory.override.deployer.password=new_password"
在上面的例子中,我们使用CURL远程调用Bamboo计划。我们为这个特定的请求设置部署者用户名和部署者密码。
注意,我们添加了“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。 如果用环境变量填充该变量, 使用该环境变量的值作为构建JDK路径。 如果artifactory.task.override.jdk.env.var没有定义,使用JAVA_HOME的值构建JDK。 |
Maven, Gradle, Ivy |
artifactory.task.override.jdk.env.var |
存储另一个环境变量的名称,该变量的值应该用于构建JDK。 | Maven, Gradle, Ivy |
发布管理
Artifactory Plugin为发布管理和推广提供了强大的特性。详情请参阅竹工艺品插件-发布管理.