配置Jenkins以使用SVN分支

时间:2013-06-17 11:16:50

标签: svn jenkins continuous-integration hudson branch

我目前正在设置Jenkins以使用SVN存储库。目前它适用于行李箱。现在我想设置Jenkins来处理新创建的分支。我不想为SVN中的每个新分支手动创建新项目。

  • 是否已经有一个解决方案允许使用SVN并自动为在SVN中创建的每个brach在Jenkins中创建作业/任务?
  • 如何将Jenkins与SVN标签/分支机构一起使用?

3 个答案:

答案 0 :(得分:12)

如果您对jenkins不是很熟悉,也请检查我的extend answer

它提供了一个带有屏幕截图的分步解决方案。

默认情况下,在最新版本中安装了subversion插件(截至2015年9月)。

然后您应该按如下方式配置项目:

  1. check"此版本已参数化"
  2. 选择"列出子版本标签(以及更多)"
  3. 在名称字段中,设置一个可变名称,稍后可以在svn url中引用该名称。我在这里选择了svnbranch。
  4. 在Repository URL字段中,为其提供项目URL(需要包含主干,分支和标签)
  5. 根据您的需要填写其他字段
  6. 在源代码管理中,引用之前在存储库URL中定义的变量。
  7. 查看以下屏幕截图:

    enter image description here

    enter image description here

答案 1 :(得分:5)

Subversion插件应该包含一个下拉构建参数选项。您可以包含基本存储库,然后选择分支,标记或主干。

检查出来:How to configure a single Jenkins job to make the release process from trunk or branches?

此处有更多信息:https://issues.jenkins-ci.org/browse/JENKINS-10678

答案 2 :(得分:2)

我们为每个分公司和卡车都有工作。如果我们有30个项目,我们有30个中继项目,我们目前使用的每个分支有30个项目。这可能超过150个工作岗位,但我们使用视图来帮助将它们分开。在Subversion中使用分支(甚至是标记)非常简单:只需使用包含分支的URL。

每当我们创建新分支时,我都会手动复制我的作业。我通常厌恶一个手动过程(手动过程=>犯了一个错误=>主要搞乱了=>得到解雇=>在沃尔玛工作),但实际上我的工作中只有两个变化。我必须更改Subversion URL和描述。其他一切都设置为使用Jenkin的默认值。没有古怪的工作目录,没有时髦的复制构建工件(我们存储在Jenkins中)。我们有大约30个左右的工作,我可以在不到半小时内复制所有这些工作。

我只是遇到了自动化问题,如果我必须完成所有工作以确保一切正常,我不妨手动完成。

您可以参数化您的构建。也就是说,让用户输入分支的名称(或从下拉列表中选择它。这意味着为所有分支创建单个作业。但是,这会破坏Jenkins的连续构建方面你必须手动触发每项工作。

某些网站的脚本可以批量生成新分支。您只需从一个作业下复制config.xml(以及其他一些文件)并进行修改即可。一些网站创建了模板作业,使这更容易一些。模板作业被禁用,并且由于REST API,可以通过wget轻松启用作业。他们只需复制模板作业,修改一些参数,然后重新启用所有这些作业。

JobCopy builder Plugin允许您定义模板构建项目,然后替换模板中的字符串以创建实际作业。

Jenkins Wiki上还有一个Ant脚本,可以为您复制作业。