使用Hudson进行持续集成(八)

本文介绍了如何使用Hudson CI工具创建并监控构建作业。通过详细步骤和屏幕截图,展示了作业的状态和稳定性评估方法。

运行并监控作业

  译自: http://www.javaworld.com/javaworld/jw-12-2008/jw-12-hudson-ci.html 

 

要运行您新近创建的作业,第一步就是跳转到http://localhost:8080/hudson(Hudson 控制面板)。图20显示了我在Ubuntu服务器上设置的全新的Hudson实例。
 

 图20. Hudson 控制面板

    在截屏的中心部分,您可以看到我刚刚定义的HeliosJMXTrunk 作业。当然这个截屏上还有其它一些很值得我们关注的条目:

  • 灰色球体状图标描述着作业的一种状态。灰色这种情况表明当前作业从来没有被构建过。
  • 在左边的表格中,名称为"Build Queue"的标签会显示当前正在运行或者准备运行的作业。表格中名为"Build Executor Status"的标签会公布已分配构建线程的状态。Hudson默认情况下会分配两个用于构建的线程,这意味着Hudson可以并行的执行两个构建。如果要修改它的数量,您可以单击Manage Hudson ,然后修改(1.3以后 # of executors)Configure Executors。请小心使用这个数量,因为软件的构建往往会相当密集的消耗内存资源;把太多构建同时加载到Hudson服务器是不合理的做法,因为这反过来可能会减缓您所有作业的执行效率。
  • RSS订阅图标。Hudson提供了另一种事件通知的方式:RSS订阅,包含整体系统的订阅和单独作业的订阅,主要有如下几种情况:
    •  成功的构建
    •  不稳定的构建
    •  被终止的构建
    •  SCM的改变

接下来请求一次构建,您可以点击作业列表表格中最右侧的构建图标。当然,您也可以单击当前作业的名称,它将指向您当前作业的主页,然后单击Build Now链接按钮。

当作业一旦运行,您将会看到这个作业正在队列中的仪表板和当前工作主页上运行。这两种显示如图21 。


 

图21. 当作业运行时两种不同的显示

 

      一般来说,您想在某些时候以通过视图输出作业的运行来监控当前作业的进展情况。为此,您链接到作业主页,单击Console Output。如果工作已完成,这将显示构建脚本产生的静态输出,;如果作业仍然在运行中,Hudson将不断刷新网页的内容,以便您可以看到它运行时的输出。图22 描述了这个非常有用的功能。



 

图22.  控制台以直播方式显示作业运行时的输出

一旦构建完成后,完成后的作业将会有三个地方进行显示。

  • 你可以在Hudson的控制面板上看到它,如图23 。
  • 你可以在当前作业主页上看到它,如图24 。
  • 通过点击构建历史中某个具体的构建链接,您就能跳转到Hudson为这个构建实例而专门创建的构建主页上。如图25。



 

  图 23.  Hudson控制面板上显示已完成的作业

 

     下面简要介绍控制面板中符号的意义,它描述了“作业状态”这一部分,黄色球标意味着构建成功,但被认为不稳定。W栏目代表着“天气”,这里的小太阳图标表示阳光普照。因为构建成功了而且没有任何处理插件(如上面所述的插件)来通知Hudson报告任何糟糕的情况。当然值得一提的是,最近一次构建花费了15分钟。这是因为我为测试套件中的一些单元测试时使用了一些调度组件,故意使运行时间延长了。把实际构建和测试在当前作业分隔开来运行其实是一个很好的选择


 图 24.  当前作业主页上显示已完成的作业

 

     当前作业主页上还包含了一些有趣的条目。左侧栏的链接主要控制作业的配置(为了修改你在New Job后的定义)、删除作业、构建作业。右边部分的链接指向最新的项目报告和构件。

 

 

图 25.  当前构建主页的已完成构建

    构建主页是针对一个构建实例而特设的。请注意,Hudson会分配一个内部的版本号用于跟踪分布式构建。此网页还列出Subversion的最新修订(没有在此次构建上的),同样还有三个失败的JUnit测试案例。这三个失败就是导致Hudson认为此次构建不稳定的原因,这说明该次软件构建并没有错误,只是有单元测试失败了。接下来的构建中,如果没有了任何单元测试错误的话,在控制面板和工程主页将显示一次稳健的构建。如图26中截屏所示。



 

 图 26. 二次构建后的控制面板和作业主页

 

    我现在已经涵盖了作业的配置、作业的启动以及请求一次即时构建所必须的步骤。接下来我们简单的讨论一下在Hudson中如何描述一个作业的状态。

作业状态

     在上面展示的截图中,您将注意到有两个图标描述当前作业的状态。Hudson使用两个概念来介绍一个作业的总体状况:

  • 作业状态:  图27中分级符号概述了一个作业新近一次构建会产生的四种可能的状态:
    • Successful: 完成构建,且被认为是稳定的。
    • Unstable:    完成构建,但被认为不稳定。
    • Failed:  构建失败。
    • Disabled: 作业已禁用。
  • 作业稳定性: 当一个作业中构建已完成并生成了一个未发布的目标构件,如果您准备暗中评估此次构建的稳定性,Hudson会基于一些后处理器任务为构建发布一个稳健指数(从0-100 ),这些任务一般以插件的方式实现。它们可能包括单元测试(JUnit)、覆盖率(Cobertura )和静态代码分析(FindBugs) 。分数越高,表明构建越稳定。图28中分级符号概述了稳定性的评分范围。任何构建作业的状态(总分100)低于80分就是不稳定的。

 

Job states

图 27.  作业状态

Job stability

图 28.  作业稳定性
内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值