Build Monitor View插件:3:一个排序选项的BUG

在这里插入图片描述
前面的文章介绍了Build Monitor View的概要信息、特性与安装方法,这篇文章继续介绍此插件的具体使用方法,以及出现问题的暂定对应方式。

概要介绍与安装

详细信息可参看如下内容:

  • https://liumiaocn.blog.csdn.net/article/details/103191054

事前准备

我们通过准备一一些预先创建的job, 可使用easypack上准备的脚本和设定文件进行快速创建。

liumiaocn:jenkins liumiao$ i=0; while [ $i -lt 20 ];
> do
> i=`expr $i + 1`
> echo "[${i}]: create test_job_${i} "
> sh mgnt_jenkins_demo.sh JOBCREATE when test_job_${i}
> echo
> done
[1]: create test_job_1 
[JENKINS Crumb]: Jenkins-Crumb:c8d3e1a4b0761c884af20bb0696afb87
JOB Creation Begins ...
JOB Creation Ends   ...

...省略

[20]: create test_job_20 
[JENKINS Crumb]: Jenkins-Crumb:c8d3e1a4b0761c884af20bb0696afb87
JOB Creation Begins ...
JOB Creation Ends   ...

liumiaocn:jenkins liumiao$

创建方法详细可参看:https://liumiaocn.blog.csdn.net/article/details/103207541

创建Build Monitor View

创建一个名为Build Monitor View的视图,然后选中上述创建的20个Job(此插件显示多个job时单列显示,下拉条在鼠标出范围时为隐藏状态)
在这里插入图片描述
而如果使用正则方式,比如输入test_job*,目前版本似乎无法直接将所有job直接选中至视图之中,所以采取了上述方式。
在这里插入图片描述
选中job之后创建视图,可以看到结果如下所示:
在这里插入图片描述
上述job状态均为灰色,其原因是因为上述创建的job状态如下所示
在这里插入图片描述

  • BUG1:
    发现BUG一枚,在Last Duration为N/A的状态下,修改Build Monitor View显示的顺序(缺省使用Name进行排序),如果修改为Estimated duration时
    在这里插入图片描述
    页面会无法显示,会提示如下错误
    在这里插入图片描述
    由于修改和设定或者删除此视图需要进入此Build Monitor View视图中,而一旦点击就出现上述问题,导致无法修改,这就完美的形成了一个死循环。要想使用(点击进入视图),必须要要先修改设定,要想修改设定必须能够先先点击进行入视图。查看了一下Jenkins的日志,可以看到出现了和此插件相关的错误信息,大概率可能是缺少判空
WARNING: Caught exception evaluating: it.isEmpty() in /view/Build%20Monitor%20View/. Reason: java.lang.ClassCastException: org.jenkinsci.plugins.workflow.job.WorkflowJob cannot be cast to hudson.model.AbstractProject
java.lang.ClassCastException: org.jenkinsci.plugins.workflow.job.WorkflowJob cannot be cast to hudson.model.AbstractProject
	at com.smartcodeltd.jenkinsci.plugins.buildmonitor.order.ByEstimatedDuration.compare(ByEstimatedDuration.java:9)
	at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)
	at java.util.TimSort.sort(TimSort.java:220)
	at java.util.Arrays.sort(Arrays.java:1512)
	at java.util.ArrayList.sort(ArrayList.java:1462)
	at java.util.Collections.sort(Collections.java:175)
.. 省略

不过将上述20个Job全部构建成功依然出错,更为尴尬的事情是此插件从2018年9月开始到现在已经没有更新了,所以直接想原作者提issue估计也不会得到回应。

BUG暂定对应方法

Build Monitor View插件的设定信息保存在JENKINS_HOME下的config.xml文件中,所以直接修改此文件即可。

/data/jenkins # cp config.xml config.xml.org
/data/jenkins # vi config.xml
/data/jenkins # diff config.xml config.xml.org 
--- config.xml
+++ config.xml.org
@@ -67,7 +67,7 @@
       <config>
         <displayCommitters>false</displayCommitters>
         <buildFailureAnalyzerDisplayedField>Name</buildFailureAnalyzerDisplayedField>
-        <order class="com.smartcodeltd.jenkinsci.plugins.buildmonitor.order.ByName"/>
+        <order class="com.smartcodeltd.jenkinsci.plugins.buildmonitor.order.ByEstimatedDuration"/>
       </config>
     </com.smartcodeltd.jenkinsci.plugins.buildmonitor.BuildMonitorView>
   </views>
/data/jenkins #

修改完毕之后重启Jenkins,然后再次点击前面创建的视图,即可发现可以进入了
在这里插入图片描述
然后再确认一下排序也已经是正确的了
在这里插入图片描述
如果只是手欠点了一下,最快的方式是点击页面的回退,一旦关闭页面或者浏览器之后,由于作者继续维护的频度很低,短时间内出现类似的情况,只能使用本文提到的方式了。此BUG在没有选中job时不会显示,如果一旦选中具体的job,又选中了此项排列方式的话就会出错了,看起来像是测试不足导致的问题。

淼叔 CSDN认证博客专家 神经网络 TensorFlow NLP
资深架构师,PMP、OCP、CSM、HPE University讲师,EXIN DevOps Professional与DevOps Master认证讲师,曾担任HPE GD China DevOps & Agile Leader,帮助企业级客户提供DevOps咨询培训以及实施指导。熟悉通信和金融领域,有超过十年金融外汇行业的架构设计、开发、维护经验,在十几年的IT从业生涯中拥有了软件开发设计领域接近全生命周期的经验和知识积累,著有企业级DevOps技术与工具实战。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页