配置Maven作业
要在Maven作业中启用发布管理,请编辑作业配置并选中“启用人工发布管理”复选框。
G
准备一个Maven发布版本
一旦启用了发布管理,Artifactory发布分段链接将出现在左侧面板中(授权用户)
点击发布阶段链接将打开一个包含发布版本配置选项的新页面:
发布暂存页面显示最后一个构建版本(该版本是根版本,取自最后一个非发布构建)。
表单中的大多数字段都用默认值填充。
版本配置控制插件如何更改pom文件中的版本(所有模块的全局版本,每个模块的版本或没有版本更改)。
如果选中了create VCS标签(默认),插件将提交/推送带有发布版本的pom到VCS系统,并附上提交注释。当使用Git时,还可以选择创建一个发布分支。
如果目标Artifactory服务器是Pro版本,那么最后一部分允许您更改目标存储库(默认是在Artifactory发布者中配置的发布存储库),并添加将包含在部署到Artifactory的构建信息中的分段注释。
点击“Build and Release to Artifactory”按钮来触发发布构建。
推广发布版本
在一个发布版本成功完成之后,就可以提升这个版本了。这不是必需的步骤,但如果您希望将构建标记为Artifactory中的发布,并将构建的工件移动/复制到另一个存储库中,以便这些工件对消费者可用,则这是非常有用的。
要激活该操作,请单击构建号旁边的图标,或者单击构建发布作业左侧面板上的“Artifactory Release Promotion”链接。
请注意,Artifactory Pro是必需的推广。
点击链接,进入推广页面:
选择构建的目标状态(已释放或已回滚),以及在Artifactory中的构建中显示的可选注释。要移动或复制构建构件,请选择目标存储库。
推广非阶段构建
Artifactory还允许您提升尚未通过发布阶段的构建。
为此,请选中构建作业配置对话框中的“允许提升非阶段构建”框。
Gradle发布管理
Gradle中的发布管理依赖于Gradle管理的版本(和其他)属性。属性文件。你将所有相关的属性添加到发布管理配置中,插件将在gradle中读取并修改这些属性。属性文件。
这些是插件执行的基本步骤:
- 换一下煎锅。带有发布值的属性(在构建开始之前)
- 触发Gradle构建步骤(使用可选的不同任务和选项)
- 提交/推送更改到标签(Subversion)或发布分支(Git)
- 换一下煎锅。具有下一个积分值的属性
配置Gradle作业
发布管理也可用于自由风格项目中的Gradle构建步骤。要启用Gradle发布管理,请编辑free style作业配置,并在Gradle- artifactory集成中勾选“Gradle- artifactory Integration”和“Enabled release management”复选框。
搭建Gradle发布版本
一旦启用了发布管理,Artifactory发布分段链接将出现在左边的面板中(对于授权用户)。
点击发布阶段链接将打开一个包含发布版本配置选项的新页面:
发布阶段页面显示为作业配置的发布和下一个开发属性。这些值从gradle中读取。属性文件和版本和下一个集成版本的计算将被尝试并显示在文本字段中。
如果选中了create VCS标签(默认),插件将提交/推送带有发布版本的pom到VCS系统,并附上提交注释。当使用Git时,如果选中了“使用发布分支”,下一个发布版本的更改将在该分支上完成,而不是在当前的签出分支上。
最后一部分允许您更改目标存储库(默认是在Artifactory发布者中配置的发布存储库)和可选的staging注释,这些注释将包含在部署到Artifactory的构建信息中。
点击“Build and Release to Artifactory”按钮来触发发布构建。
推广发布版本
推广也是一样的在Maven中.
配置授权
如果您使用基于矩阵的安全性,则必须为发布和提升操作授予权限。
这个插件增加了两种权限类型:
- 发布-允许用户触发发布构建
- 提升-允许用户提升一个构建
释放分段公开的变量
Release Staging流程公开了以下变量,稍后可以在构建作业中使用这些变量。当发布构建结束时,这些变量将被公开。
RT_RELEASE_STAGING_VERSION -包含为发布配置的发布版本。
RT_RELEASE_STAGING_NEXT_VERSION -包含为发布配置的下一个开发版本。
RT_RELEASE_STAGING_SCM_TAG—包含为发布配置的SCM标签名称。
RT_RELEASE_STAGING_SCM_BRANCH—包含为发布配置的SCM分支名称。
使用Subversion
当使用一个签出目录时,发布管理支持Subversion SCM。
在发布期间,插件将执行以下操作:
- 将发布版本直接提交给标签(如果选中了create标签)。发布版本没有提交给工作分支。
- 向工作分支提交下一个开发版本
使用Git
要使用Git,必须将Git插件(版本1.1.10或更高)配置为构建一个分支并签出到同一个本地分支。远程URL应该允许读+写访问。
该插件使用安装在机器上的git客户端,并使用其凭证将其推送回远程git存储库。
在发布期间,插件将执行以下操作:
- 如果选中了创建分支,则创建并切换到发布分支
- 将发布版本提交到当前分支
- 创建一个发布标签
- 推动改变
- 切换到签出分支并提交下一个开发版本
- 将下一个开发版本推送到工作分支
请注意,只有对文件(pom文件或gradle.properties)进行更改时才会提交更改。
与Perforce一起工作
当使用一个签出目录时,发布管理支持Perforce SCM。
在发布期间,插件将执行以下操作:
- 将发布版本提交到工作分支,并创建一个指向已更改文件的标签(如果选中了create VCS标签)。
- 向工作分支提交下一个开发版本
Jenkins Artifactory Release Staging API
Jenkins Artifactory Plugin公开了一个发布管理API,该API提供了通过Jenkins UI访问所有可用功能的权限。
API的格式如下:
/job/ /artifactory/staging?参数列表< >
地点:
Jenkins服务器URL |
运行构建的Jenkins服务器的URL |
项目名称 |
正在构建的Jenkins项目的名称 |
Maven项目参数
下表详细说明了应该提供给API的参数。这些参数与Jenkins UI中使用的参数一致。
参数列表的格式如下:=&<参数name2>=<参数value2>…
强制参数
如果您没有指定下面的任何参数,发布管理API将使用配置的Artifactory Staging User Plugin提供的值。
名字 | 预期值 |
---|---|
版本控制 |
NONE:使用已有的模块版本 |
tagUrl |
要创建的VCS标签的名称/URL |
tagComment |
VCS标签注释 |
stagingComment |
将添加到促销动作的注释 |
repositoryKey |
目标存储库,发布的发布构件应该被上载到其中 |
releaseVersion |
只有在以下情况下才相关版本控制设置为GLOBAL |
releaseBranch |
要创建的发布分支的名称 |
释放。 |
只有当versioning设置为PER_MODULE时才相关 |
nextVersion |
只有在以下情况下才相关版本控制设置为GLOBAL |
nextDevelCommitComment |
为下一个开发版本提交更改时要使用的注释 |
下一个。 |
只有当versioning设置为PER_MODULE时才相关 |
createVcsTag |
true:创建VCS标签 |
createReleaseBranch |
true:创建一个发布分支 |
curl -X POST \——user $ user:$API_TOKEN \ http://localhost:8080/job/$JOB_NAME/artifactory/staging \ -H "Content-Type: application/x-www-form-urlencoded" \ -d releaseVersion=8.0.1 \ -d nextVersion=8.1-SNAPSHOT \ -d createReleaseBranch=false \ -d createVcsTag=true \ -d tagUrl=8.0 \ -d tagComment="[artifactory-release|artifactory-release] Release version 8.0" \ -d nextdevelopcommitcomment =comment…
在上面的cUrl示例中,请替换$ USER,API_TOKEN美元和JOB_NAME美元与相关的值。
此外,这只适用于生成的API令牌。使用password将提示以下错误信息:请求中没有包含有效的面包屑
adle项目参数
名字 | 预期值 |
---|---|
版本控制 |
没有在Gradle项目中使用 |
releaseVersion |
没有在Gradle项目中使用 |
nextVersion |
没有在Gradle项目中使用 |
释放。< gradle.properties中的属性版本名> |
指定使用该模式的模块的新发布版本:释放。< gradle.properties中的属性版本名> |
下一个。< gradle.properties中的属性版本名> |
指定使用模式的模块的下一个开发版本:下一个。< gradle.properties中的属性版本名> |