跳过正文
Background Image
  1. Posts/

Jenkins 插件中心居然还没有 AI 插件?我写了一个!🤖

·1402 字·3 分钟· ·
沈显鹏
作者
沈显鹏
目录

正如标题所说,我最近上线了我的第一个 Jenkins 插件!🎉

这个插件的主要功能,是让 Jenkins 构建过程中遇到的错误不再需要复制错误信息到 ChatGPT 等 AI 工具中进行分析,而是直接在 Jenkins 的构建日志中提供一个按钮,点击后可以自动将错误信息发送到 OpenAI 进行分析。你也可以在 pipeline 中添加 explainError() 步骤来对错误进行解释,从而帮助开发者更快地定位和解决问题。

这是我在 Jenkins 社区的第一个插件项目。之前之所以没有尝试,是因为我认为很多功能完全可以通过 pipeline 脚本来实现,没必要单独开发插件。

但随着 AI 的使用越来越普及,我发现 Jenkins 插件中心居然还没有类似的插件,于是决定自己动手实现这个功能。在 AI 的加持下,利用晚上时间断断续续地开发与测试,以及 Jenkins Hoster 多轮认真细致的 Code Review,终于在上周末提交到了 Jenkins 插件中心,正式上线

插件介绍
#

Explain Error Plugin 是一个基于 OpenAI 的 Jenkins 插件,它可以自动解析构建失败的日志信息,并生成可读性强的错误解释,适用于流水线(Pipeline)和自由风格(Freestyle)等常见的 Jenkins 作业类型。

  • 🔍 一键分析控制台输出中的错误
  • ⚙️ 可在 Pipeline 中使用,只需一个简单的 explainError() 步骤
  • 💡 基于 OpenAI GPT 模型的 AI 智能解释
  • 🌐 提供两种 Web UI 展示 AI 生成的分析结果
  • 🎯 可定制:支持设置模型、API 地址、日志过滤器等配置

插件亮点功能
#

功能说明
✅ 控制台一键分析控制台页面顶部新增 “Explain Error” 按钮
✅ 流水线支持提供 explainError() 步骤,可自动在失败时触发
✅ 支持模型配置自定义使用 GPT-3.5 或其他模型
✅ 支持 Jenkins CasC支持配置即代码(Configuration as Code)
✅ 日志筛选支持正则过滤日志,聚焦报错内容

使用前提
#

  • Jenkins 版本 ≥ 2.479.3
  • Java 版本 ≥ 17
  • 拥有一个 OpenAI API Key(可在 OpenAI官网 申请)

快速安装
#

你可以通过 Jenkins 插件管理器安装:

Manage Jenkins → Manage Plugins → Available → 搜索 “Explain Error Plugin”

插件配置
#

安装后,在 Manage Jenkins → Configure System 页面下找到 Explain Error Plugin Configuration,配置你的 OpenAI API key 和模型即可:

设置项描述默认值
Enable Explanation是否启用 AI 解析功能✅ 启用
API Key你的 OpenAI Key必填
API URLOpenAI 接口地址https://api.openai.com/v1/chat/completions
AI Model使用的模型gpt-3.5-turbo

Explain Error Plugin Configuration

也可以通过 Jenkins Configuration as Code 管理这部分配置,例如:

unclassified:
  explainError:
    enableExplanation: true
    apiKey: "${AI_API_KEY}"
    apiUrl: "https://api.openai.com/v1/chat/completions"
    model: "gpt-3.5-turbo"

如何使用
#

在流水线中使用
#

推荐在 post { failure { ... } } 语句中调用 explainError(),在构建失败时自动分析错误:

post {
  failure {
    explainError()
  }
}

也支持设置日志长度和匹配关键词:

explainError(
  maxLines: 500,
  logPattern: '(?i)(error|failed|exception)'
)

在控制台中使用
#

适用于任意类型的 Jenkins 作业:

  1. 打开失败构建的控制台输出页面
  2. 点击顶部的 “Explain Error” 按钮
  3. AI 分析结果会展示在按钮下方

效果预览
#

构建失败后,在作业页面会出现一个侧边栏入口,点击即可查看 AI 分析结果:

Explain Error Plugin

或者直接在控制台页面中点击“Explain Error”来查看分析内容:

Explain Error Plugin Console

未来计划
#

  • 错误缓存:同一个错误多次分析时避免重复调用 OpenAI,节省调用次数。(已经实现,等待合并)
  • 多模型支持:支持其他 AI 平台,例如 Google Gemini、Claude、DeepSeek 等

这些功能仍在开发、构思和完善中,也非常欢迎你的反馈和建议。

写在最后
#

插件是完全开源的,欢迎试用和贡献代码!

如果你在使用过程中遇到任何问题,或者有好的建议,欢迎在 GitHub 上提交 issue 或 pull request:

GitHub 地址:https://github.com/jenkinsci/explain-error-plugin

如果你觉得这个插件对你有帮助,欢迎转发文章;也可以在 GitHub 上点个 Star ⭐ 支持一下!

这是对开源项目最直接的支持 🙌


转载本站文章请注明作者和出处,请勿用于任何商业用途。欢迎关注公众号「DevOps攻城狮」

相关文章

如何通过 Jenkins 进行资源的锁定和释放
·901 字·2 分钟
本文介绍了如何使用 Jenkins 的 Lockable Resources 插件来管理和锁定资源,确保在多任务环境中资源的独占性和安全性。
通过 Jenkins 来提交修改的代码 git push by Jenkins
·439 字·1 分钟
如何通过 Jenkins Pipeline 脚本来提交修改的代码到 Git 仓库,包括克隆仓库、修改代码和推送更改等步骤。
Jenkins Linux Agent 配置
·353 字·1 分钟
本文提供了 Jenkins Linux Agent 的逐步配置指南,包括 Java 运行时的准备、节点创建以及常见问题的排查方法。
Jenkins Windows Agent 配置
·608 字·2 分钟
本文提供 Jenkins Windows Agent 的详细配置步骤,包括 Java 运行时准备、节点创建以及常见问题的排查方法。
Jenkinsfile 配置
·256 字·1 分钟
本文介绍了如何使用 Jenkinsfile 配置 Jenkins Pipeline,包括构建、测试和发布阶段的示例,以及如何处理邮件通知。
如何修复 Shields.io 徽章在 Jenkins 中无法显示
·423 字·1 分钟
如果你的 Shields.io 徽章(例如构建状态或文档状态)在 Jenkins 仪表盘中无法显示,很可能是因为 Jenkins 的严格内容安全策略(CSP)限制所致。本文将演示如何通过 Script Console 临时修复,以及如何通过修改 Jenkins 启动参数永久解决。该方法适用于内部 Jenkins 环境,并已在现代 Jenkins 安装中测试验证。