Svn 从subversion标记自动生成
我正在尝试自动化工程组的构建过程。作为自动化的一部分,我试图达到这样一个点,即应用符合模式的特定标记将启动一个自动化过程,该过程将执行以下操作:Svn 从subversion标记自动生成,svn,build-process,build-automation,build-management,Svn,Build Process,Build Automation,Build Management,我正在尝试自动化工程组的构建过程。作为自动化的一部分,我试图达到这样一个点,即应用符合模式的特定标记将启动一个自动化过程,该过程将执行以下操作: 查看源代码 从模板创建生成脚本 建设项目 我很确定我可以用subversion中的一个post钩子来实现这一点,但我正在尝试用subversion钩子以外的东西来实现这一点 监视subversion存储库中的标记目录以启动我的工作流是否有意义 有没有合适的工具可以帮你实现这一点(.NET如果可能的话会很好) 我写一个引擎来做这件事会更好吗 我的
- 查看源代码
- 从模板创建生成脚本
- 建设项目
- 监视subversion存储库中的标记目录以启动我的工作流是否有意义
- 有没有合适的工具可以帮你实现这一点(.NET如果可能的话会很好)
- 我写一个引擎来做这件事会更好吗
- 完成全部或部分功能的现有产品
- 如果需要进行开发工作,最好使用.NET
- 适用于Windows(我们有一个基于Linux的repo,但所有构建都在Windows上进行)
它可以监视存储库(Svn和其他几种类型),并使用各种工具启动自动构建。(NAnt、MSBuild等)听起来您想要的是一个持续集成构建引擎,比如CruiseControl或Hudson(Hudson是用java编写的,但在windows中很容易使用) 现在,您可以伪造这些工具的构建脚本来查看tags目录,但这有点不符合实际,因为它们打算查看特定位置并在该位置构建项目。如果您查看整个标记目录,您很容易就会发现所有标记都将在构建机器上签出,并且您需要一个顶级脚本来决定要构建哪个标记 为了满足您的需要,构建引擎可以监视特定位置(比如“/branchs/release”)。如果您随后合并到该分支中,Hudson将自动构建项目,归档工件,并在成功后为您创建标记(请参阅 Subversion标记插件) 我不喜欢从post-commit钩子做这种事情,因为这会使提交阶段花费太长时间。然而,TeamCity是一个源代码管理系统,它有一个功能,可以在提交时不阻碍您
我建议您这样做。正如其他人所说,您需要一个持续集成服务器(CruiseControl、CruiseControl.Net、Hudson等)。虽然您可以使用构建脚本和提交钩子来实现您描述的功能,但最终您会发现您重新发明了轮子(持续集成服务器)。不需要,有免费的解决方案可用于此目的 该过程的工作原理与上面描述的略有不同。 生成服务器将:
我用哈德逊做了这件事。在常规subversion签出槽中,我有一个用于主干的签出: 然后,作为第一个构建操作,我有一个“execute shell”,在该shell中使用svn开关更改为存储库中的最新标记: svn开关'svn ls |尾部-n 1'干式 下一个构建步骤是maven'clean install'命令,该命令使用标记版本中的代码启动构建 我还没有弄明白如何让哈德逊从一个最新的标签版本开始,而不是必须做开关,但开关工作。然后,可以在更新标记目录时触发 它是自动化的。。。有点混乱,但它是有效的 该开关应包括第二个svn命令的反勾号,但必须使用“因为反勾号未显示在此处”。我喜欢-易于设置,并与svn一起开箱即用 您可以将其配置为在每次提交的基础上构建 我下载了它,并在一天内开始构建。它经历了很多调整,但我会向任何人推荐它 我也用过巡航控制系统,但不太满意。除了跨平台问题外,我没有其他具体原因 编辑
我最近在我的hudson build服务器上添加了一个监听google/gmail jabber聊天的任务。我可以使用这种机制将“常规”构建“升级”为发布构建。我刚刚建立了一个新的工作,它执行必要的步骤来将私有构建提升/发布到候选发布版本中 我也推荐哈德逊。我想做一些类似的事情,创建一个标签,然后开始构建。取而代之的是,我选择在哈德逊使用这个插件:
用它来驱动标签的创建和明确的发布版本。是的,我想你看到了我所追求的是真正自动化发布机制的工作方式。如果我只是简单介绍一下模型,这意味着所有的开发人员