相关疑难解决方法(0)

如何配置单个Jenkins作业以从主干或分支进行发布过程?

我目前正在加强Jenkins(1.430)项目的发布过程.

当前的发布工作

今天,对于一个特定项目,我们有一个专门负责发布流程的工作.完整的程序如下:

  1. 负责发布的开发人员手动更改所有pom.xml文件的版本(实际上是使用mvn versions:set -DnewVersion=2.0)来摆脱-SNAPSHOT.
  2. 然后,他在SVN中创建了一个标签(例如,http:// my-svn-repo/project/tags/V_2_0).
  3. 创建此标记后,他会登录我们的Jenkins服务器,并启动发布版本.
  4. 这个构建将询问他想要用于构建的标记.该作业配置为参数化构建,带有参数List Subversion标记.
  5. 然后,Jenkins将从此标记构建工件,并将它们部署在我们的Nexus实例上.
  6. 完成此操作后,开发人员将pom.xml版本设置为新的开发版本(即2.1-SNAPSHOT).

这种方法的优点是我只有Jenkins作业,因为构建只依赖于标记.

但是,此过程涉及太多人为干预(pom.xml,提交,标签等的更改).

新的发布工作

现在,我使用Maven发布插件.我创建了一个工作,向启动构建的用户提出三个信息:

  • 发行版的版本(releaseVersion发布插件的参数);
  • 发布版本,发布后(developmentVersion发布插件的参数);
  • 标签的名称(tag发布插件的参数).

这项工作正常,除了一点:作业基于中继或SVN的分支.这意味着如果我有2个分支(除了主干),我将需要创建3个发布作业:每个分支一个.

保持两个世界中最好的一个想法(即使用mvn发布,但保留1个发布作业),添加一个构建参数,该参数将询问用户中继/分支的路径.因此,我将设置并要求用户输入参数,而不是在作业配置中设置http://my-svn-repo/project/trunk(或http://my-svn-repo/project/branches/BRANCH_V1).http://my-svn-repo/project/$FROM_BRANCHFROM_BRANCH

这种解决方案的问题在于,用户必须输入任一trunkbranches/BRANCH_Vx,这可能导致错误.

理想情况下,我希望有一个构建参数,让我可以选择分支(包括主干),因为选择标签时存在参数List Subversion标签...

所以我的问题是:有没有更好的方法来配置一个可以在所有分支上工作的Jenkins作业?

谢谢.


编辑:我发现验证字符串 Jenkins插件可以很有趣,以确保用户定义的值尊重某些正则表达式.这对我的情况很有帮助......

hudson maven maven-release-plugin jenkins

18
推荐指数
2
解决办法
5万
查看次数

标签 统计

hudson ×1

jenkins ×1

maven ×1

maven-release-plugin ×1