我目前正在改善有关詹金斯(1.430)的项目的发布过程。
当前发布的职位
今天,对于一个特定项目,我们只有一项工作专门用于发布过程。完整的过程如下:
mvn versions:set -DnewVersion=2.0
-SNAPSHOT
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_BRANCH``FROM_BRANCH
http://my- svn-repo/project/trunk
http://my-svn- repo/project/branches/BRANCH_V1
http://my-svn- repo/project/$FROM_BRANCH``FROM_BRANCH
该解决方案的问题在于用户将不得不输入trunk或branches/BRANCH_Vx,这可能会导致错误。
trunk
branches/BRANCH_Vx
理想情况下,我希望拥有一个构建参数,该参数可以让我选择分支(包括主干),因为存在用于选择标记的参数 List Subversion 标记…
所以我的问题是:有没有更好的方法来配置 一个 可以在所有分支上工作的詹金斯工作?
谢谢。
编辑 :我发现了Validating String Jenkins插件,它很有趣,可以确保用户定义的值遵守某些正则表达式。这对我来说很有帮助…
您需要版本1.32的subversion插件。该版本中已实现了JENKINS-10678问题。
然后,只给它提供项目URL(它需要包含主干,分支和标签),它将为您提供主干以及分支。