Jenkins可以签出/编译/测试并提交不同的SVN分支吗?

时间:2015-09-08 19:02:35

标签: svn jenkins continuous-integration continuous-delivery

全部 -

我已经使用Jenkins大约一年了,现在我正试图为我的团队设置一个持续的交付渠道并提出问题。

问题

是否可以从一个SVN分支中获取Jenkins签出/编译/测试代码,然后,如果一切都通过,将该代码推送到另一个SVN分支?

对于我的团队,我设想了以下分支::

-Our Product Root
  -Individual Issue Branches
    -Issue1
    -Issue2
    -Issue3
  -Integration Branch
  -Stable Branch
  -Production Branch

每个 个人问题分支 将是 稳定分支

的副本

个别问题分支 的提交将转到 整合分支

我希望Jenkins能够::

  1. 侦听SVN中针对Integration Branch的提交
  2. 从SVN下载Integration Branch
  3. 编译集成分支代码
  4. 运行任何单元测试
  5. 如果一切都过去了,请将新代码提交到 稳定分支
  6. 那么,Jenkins可以从一个SVN分支检出/编译/测试代码,并且在成功时将该代码提交给另一个SVN分支吗?

    感谢您的时间,

    杰夫

3 个答案:

答案 0 :(得分:1)

它取决于你的构建技术。
有很多方法可以实现这一点。
 1)发布后步骤 - 执行shell




 < code> svn commit --file file1 file2&#xA;  
&#xA;&#xA;

这些文件可以从SVN变更请求获得。

&#xA;& #xA;

2)使用SVN Publisher插件

&#xA;&#xA;

https://wiki.jenkins-ci.org/display/JENKINS/SVN+Publisher

&#xA;&#xA;

3)incase你正在使用SVN与ant http://subclipse.tigris.org/svnant/svntask.html < / a>

&#xA;&#xA;

更多信息:

&#xA;&#xA;

将文件从Jenkins工作区提交到SVN

&#xA;

答案 1 :(得分:0)

是的,这是可能的,但不是詹金斯本身的原生......除非(你猜对了)有一个插件可以做到这一点。

我将如何实现这一目标是通过一个脚本,在成功构建之后将第二个分支检出到一个新目录,然后将您需要的任何内容复制到该工作目录中,然后检入该新分支。

对我来说似乎很浪费,因此可能有提高效率的空间,特别是在其他分支机构的检查中。 SVN不是我的力量,所以我假设您必须首先检查分支到某个位置,进行一些更改,然后检查该分支。我不知道是否有办法将当前签出的分支机构签入另一个分支机构,并且能够自动处理可能出现的任何冲突。

答案 2 :(得分:0)

我最终使用了Subversion Merge Plugin。基本上,我刚刚创建了一个监视我的Stable分支的父Jenkins作业,并将其设置为允许使用该插件进行功能分支。

从那里,您可以使用该插件自动创建功能分支。这允许您在各个功能分支上进行编码。然后,当您确定您的代码是好的时,您可以使用插件的内置“集成到上游”功能将您的代码合并到您的稳定(主干)代码中。