gpt4 book ai didi

java - 使用 Hudson+Ant+Subversion 自动发布

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:39:38 30 4
gpt4 key购买 nike

我们最近启动了 Hudson 以进行持续集成,并开始享受自动化测试、静态分析等带来的好处。我们的下一步是启动繁琐的手动发布流程。我设想的是一个两阶段过程:

  1. 发布行的分支。一旦我们的开发线稳定下来,我们就想分支。因为我们有低密度、高需求的用户,正式发布后通常会有一些 Activity ,导致发布线开始时有点走走停停的开发(我们不想要为此阻止主线开发)所以在方便的时间分支的做法,然后允许稳定窗口(几小时到一两天)是有意义的。 (这是在subversion中完成的;通常我们在分支之前标记开发发布,然后分支,然后进行并行开发)

  2. 从分支中删除一个版本。目前涉及

    1. 稍微“修复”一下,将发布号放在它们所属的位置。
    2. 签到
    3. 标签
    4. 导出
    5. build
    6. 一些“修复”以将版本号返回到“开发/快照”。
    7. 签到

因此,要在 Hudson 中干净利落地实现此类操作,我们如何:

  • 从 Hudson 执行一个分支操作,给树分支,给定一个新的发布分支名称,并生成一个新的 Hudson 作业以为该分支创建一个新的连续构建线。 (它接近于现有 -trunk 配置的副本,但必须替换一些工作区名称和东西......)

  • 与 Subversion 交互的逻辑在哪里? (可以想象,可以在 ant 脚本中;可以是一个单独的脚本;Hudson/plugins 似乎也提供了一些这种逻辑?)

  • 当 Hudson/子进程以写入模式与存储库对话时,对用户/权限有何想法?

  • 第二阶段怎么样,上面的问题也适用,我可以只使用发布插件来自动化这样的逻辑吗?

我已经仔细阅读了 Hudson 和 Release Plugin 文档,但它相当参差不齐,并且没有很多从头到尾列出的工作示例......

编辑添加:我理解并期待“你考虑过 Maven 了吗?”响应...我很感激,我知道 Maven 可能是正确的长期解决方案,但是构建系统的转换以及转向 Maven 的精确约束和教育技术人员的所有狂 Storm 雨是不可行的在短期内。大概有一种方法可以用 Ant 和一点肘部润滑脂来做到这一点......

最佳答案

基于 Ant 的短期流程

考虑到您对 Ant 构建过程的 promise (除了您错过的好东西之外,这没有任何问题)我建议您模仿 Maven 方法,但在 Ant 中进行。所以有一个彻底的read of this article that shows how to use SVNAnt .

长期的理想解决方案

正如@Peter Lawray 所提到的,Maven 是您的 friend 。具体查看发布插件,它将管理使用项目的“黄金发布”版本标记您的 Subversion 存储库的过程。本质上,您执行完整构建(包括功能测试,如果您有)来验证您的工件,然后 Maven 标记您的 Subversion 存储库,最后它运行您的项目 pom.xml 文件并将它们重新版本化到下一个级别向上(作为快照)。

在构建过程方面,Hudson 与 Maven 愉快地合作,并将按照您在 Maven pom.xml 中指定的顺序构建和测试工件(您的 JAR、WAR、EAR 等)。

如果您愿意,您也可以结合 SeleniumRC 并提供多浏览器自动化功能测试环境。 Maven 处理从构建到将工件部署到构建服务器中的所有过程,然后是后续的功能测试,并由发布过程进行最终签核。

我已经 blogged a little about this如果你有兴趣。

关于java - 使用 Hudson+Ant+Subversion 自动发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4258204/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com