【问题标题】:Can Jenkins Checkout/Compile/Test and Commit to Different SVN Branch?Jenkins 可以签出/编译/测试并提交到不同的 SVN 分支吗?
【发布时间】:2015-09-08 19:02:34
【问题描述】:

全部-

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


问题

是否可以让 Jenkins 从一个 SVN 分支检出/编译/测试代码,然后,如果一切顺利,将该代码推送到另一个 SVN 分支?


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

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

每个个别问题分支都是稳定分支的副本

但是

个别问题分支的提交将转到集成分支


我希望詹金斯::

  1. 在 SVN 中侦听针对集成分支的提交
  2. 从 SVN 下载集成分支
  3. 编译集成分支代码
  4. 运行任何单元测试
  5. 如果一切顺利,将新代码提交到稳定分支

那么,Jenkins 是否可以从一个 SVN 分支检出/编译/测试代码并在成功后将该代码提交到另一个 SVN 分支?

感谢您的宝贵时间,

杰夫

【问题讨论】:

    标签: svn jenkins continuous-integration continuous-delivery


    【解决方案1】:

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

     svn commit --file file1 file2
    

    您可以从 SVN 更改请求中获取此文件。

    2)使用 SVN Publisher 插件

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

    3)如果您使用 SVN 和 ant http://subclipse.tigris.org/svnant/svntask.html

    更多信息:

    Commit file from Jenkins workspace to SVN

    【讨论】:

      【解决方案2】:

      是的,这是可能的,但不是 Jenkins 本身自带的……除非(你猜对了)有一个插件可以做到这一点。

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2015-09-17
          • 2018-12-19
          • 2011-02-23
          • 1970-01-01
          • 1970-01-01
          • 2012-04-04
          • 2011-01-29
          • 2017-07-14
          • 1970-01-01
          相关资源
          最近更新 更多