Build 从哈德逊的分行建造

Build 从哈德逊的分行建造,build,tags,continuous-integration,hudson,branch,Build,Tags,Continuous Integration,Hudson,Branch,我在哈德逊从事大约30个项目。现在,它们都是在提交的基础上自动构建的。有没有办法在主干和分支之间切换所有项目,同时保持在提交基础上构建的能力 我曾想过将构建参数化以指定分支,但这会破坏自动构建。我不完全确定您打算如何使用“开关”,但我想这取决于您如何使用分支。(在我们的设置中,具有连续构建的分支往往是持久的项目或版本。因此,我们为每个分支设置独立于主干构建的构建。如果您的分支是长期的,我建议使用这种方法。) 有几种方法可以实现这一点: 编写脚本以通过重新配置(或复制)作业。如果查看,可以看到有关

我在哈德逊从事大约30个项目。现在,它们都是在提交的基础上自动构建的。有没有办法在主干和分支之间切换所有项目,同时保持在提交基础上构建的能力


我曾想过将构建参数化以指定分支,但这会破坏自动构建。

我不完全确定您打算如何使用“开关”,但我想这取决于您如何使用分支。(在我们的设置中,具有连续构建的分支往往是持久的项目或版本。因此,我们为每个分支设置独立于主干构建的构建。如果您的分支是长期的,我建议使用这种方法。)

有几种方法可以实现这一点:

  • 编写脚本以通过重新配置(或复制)作业。如果查看,可以看到有关如何提交新作业配置的更多说明。这是一种自动编辑scm/location/remote属性的方法

  • 在scm中使用提交后挂钩来运行参数化生成。描述如何设置subversion提交后挂钩(用于推送提交而不是轮询)。您需要在脚本中做更多的工作来确定要构建什么。这个解决方案在我看来相当繁琐


  • 我不完全确定您打算如何使用“开关”,但我想这取决于您如何使用分支。(在我们的设置中,具有连续构建的分支往往是持久的项目或版本。因此,我们为每个分支设置独立于主干构建的构建。如果您的分支是长期的,我建议使用这种方法。)

    有几种方法可以实现这一点:

  • 编写脚本以通过重新配置(或复制)作业。如果查看,可以看到有关如何提交新作业配置的更多说明。这是一种自动编辑scm/location/remote属性的方法

  • 在scm中使用提交后挂钩来运行参数化生成。描述如何设置subversion提交后挂钩(用于推送提交而不是轮询)。您需要在脚本中做更多的工作来确定要构建什么。这个解决方案在我看来相当繁琐


  • 嗯,你有两个选择:

    1) 您可以使用参数化生成:您仍然可以使用自动生成,但其中一个选项将是默认的(主干或分支将是默认的)

    2) 对于主干和分支,每个项目都有单独的构建


    3) (这是我在我们这里设置它的方式)有两个构建服务器:一个用于主干项目,另一个专门用于分支。

    嗯,您有两个选择:

    1) 您可以使用参数化生成:您仍然可以使用自动生成,但其中一个选项将是默认的(主干或分支将是默认的)

    2) 对于主干和分支,每个项目都有单独的构建


    3) (这是我在我们这里设置它的方式)有两个构建服务器:一个用于主干项目,另一个专门用于分支机构。

    +1或sagar:首先,我会建议第一个选项作为bobnix问题的解决方案

    然而,再问几次,我不确定他到底想要实现什么。如果他想从分支或主干触发构建,那么最好使用post-commit钩子+1为Dave B(解决方案2)

    如果他只是想在一段时间内构建分支而不是主干,那么最好的解决方案将是Dave的头号解决方案


    还有另一种选择,Bobnix实际上希望在一段时间内建立分支,但不遗余力地建立一个新的作业。解决方案是重新配置现有作业,直到切换回主干。如果没有什么发展,当分支上有发展时,那么这可能是一个有效的思路。然而,由于复制是如此简单您应该更好,只需复制主干作业并将scm调整为分支即可。当您不再需要分支时,只需将其删除。

    +1或sagar:首先,我会建议第一个选项作为bobnix问题的解决方案

    然而,再问几次,我不确定他到底想要实现什么。如果他想从分支或主干触发构建,那么最好使用post-commit钩子+1为Dave B(解决方案2)

    如果他只是想在一段时间内构建分支而不是主干,那么最好的解决方案将是Dave的头号解决方案


    还有另一种选择,Bobnix实际上希望在一段时间内建立分支,但不遗余力地建立一个新的作业。解决方案是重新配置现有作业,直到切换回主干。如果没有什么发展,当分支上有发展时,那么这可能是一个有效的思路。然而,由于复制是如此简单您应该更好,只需复制主干作业并将scm调整为分支即可。当您不再需要分支时,只需删除它。

    我正在查看您的第三个选项#1仍然给我带来麻烦,而#2在生成触发器“生成依赖项时生成”上遇到问题#3保持每件事都很好和独立。选项3是我们的选择。我正在考虑你的第三个选项#1仍然给我带来麻烦,而#2在生成触发器“生成依赖项时生成”上遇到问题#3保持每件事都很好和独立。选项3就是我们所采用的。复制的想法是最简单的,但我想知道它是否适用于30个项目。我设立了两个独立的哈德逊公司,一个是分行,一个是总部,唯一的原因是我们有93个项目。我不确定Bobnix是否想同时更换所有工作。如果是这样,他可以复制文件系统上的作业(作业的config.xml为enoug)