You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins构建历史识别:寻找或开发定时器触发构建区分插件

问题解答

现有插件情况

目前没有专门针对“在流水线构建历史标签页区分定时器触发/其他触发”的插件,但可以用Build Name Setter插件做临时替代:通过配置构建名称规则,给定时器触发的构建加上[定时触发]前缀,这样在历史列表里能快速识别。不过这只是临时方案,没法做到原生标签页的视觉区分(比如不同颜色、专属图标)。

自定义插件开发指导

如果要开发原生支持的插件,核心是修改构建历史列表的渲染逻辑,具体步骤如下:

1. 准备开发环境

  • 安装JDK 11+、Maven
  • 用Jenkins官方插件骨架初始化项目:
    mvn archetype:generate -Dfilter=io.jenkins.archetypes:plugin
    
    按提示填写插件的groupId、artifactId等基础信息。

2. 核心功能实现

(1)判断构建触发类型

Jenkins的Run对象存储了构建的触发信息,通过以下代码可判断是否为定时器触发:

import hudson.model.Cause;
import hudson.model.Run;

public boolean isTimerTriggered(Run<?, ?> run) {
    return run.getCause(Cause.TimerTriggerCause.class) != null;
}

(2)重写构建历史渲染逻辑

构建历史标签页由BuildHistoryWidget负责渲染,你需要:

  • 创建自定义的BuildHistoryWidget类,重写doRender方法,在渲染每个构建条目时,调用上面的判断方法,给定时器触发的构建添加专属标识(比如CSS类、图标)。
  • 用@Extension注解注册自定义Widget,替换默认的构建历史组件。

(3)添加前端样式区分

在插件的src/main/webapp/css目录下创建自定义CSS文件,比如:

.timer-triggered-build {
    background-color: #e6f7ff;
    border-left: 3px solid #1890ff;
}

在渲染构建条目时,给符合条件的元素添加这个CSS类,实现视觉区分。

3. 测试与打包

  • 本地启动Jenkins进行功能测试:
    mvn hpi:run
    
  • 打包生成可安装的插件文件:
    mvn package
    
    生成的.hpi文件可直接在Jenkins后台上传安装。

4. 开发注意事项

  • 基于Jenkins LTS版本(如2.401.x)开发,保证兼容性
  • 同时兼容流水线和自由风格项目的构建历史识别
  • 不破坏原有构建历史的筛选、删除等功能

内容的提问来源于stack exchange,提问作者cansu bozkurt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 19:30:02