告别 Jenkins UI:jk 让 AI Agent 也能操控 Jenkins

TL;DR

jk 是为 AI coding Agent 设计的 Jenkins CLI:附带配套的 SKILL,无需 MCP server,Agent 直接执行命令即可操作 Jenkins Pipeline。

引言

每次要触发一次 Jenkins 构建,流程大概是这样:打开浏览器,找到对应的 Pipeline,点「Build with Parameters」,填参数,提交,然后等页面跳转,再点进构建详情,再点「Console Output」------就为了看一眼日志。

如果 Pipeline 里有 input 步骤,还得盯着页面等它弹出来,手动点「Proceed」。

这套操作每天重复十几次,没什么技术含量,但每次都要用鼠标。

jk 是一个 Pipeline-native 的 Jenkins CLI,把上面这些操作都收进终端。它以 Jenkins 的 Job URL 作为操作对象,不需要额外配置 Job 名称或服务器路径------你浏览器地址栏里的那个 URL,直接拿来用。

为什么适合 AI Agent

相比通过 MCP server 接入 Jenkins,jk 对 AI coding Agent 更友好:

  • 更少依赖:不需要启动额外的 MCP server
  • 更低集成成本:直接调用命令,无需接入协议
  • 更少失败点:没有协议层,调试更简单
  • 更符合 coding Agent 工作流:Agent 本来就擅长跑命令、解析 stdout
  • 更容易落地:脚本、CI、本地开发环境,装上就能用

仓库内置了一个 jk-jenkins-cli skill,专门教 Agent 如何正确使用 jk------涵盖失败构建的诊断流程、input 步骤的处理规范,以及哪些命令只读、哪些需要用户明确确认的安全分类。比如面对生产环境的 input 步骤,skill 明确规定 Agent 不能自动 proceed,必须先检查 pendingInput 详情再请求用户确认------这类判断 CLI 本身表达不了,需要 skill 来承载。

核心功能

jk 覆盖了 Pipeline 操作的几个高频场景:

查看 Pipeline 信息

bash 复制代码
jk pipeline info https://jenkins.example.com/job/my-pipeline

输出 Job 基本信息与参数定义,YAML 格式,方便脚本解析。

触发构建

bash 复制代码
# 触发并等待结果,退出码反映构建状态
jk build trigger https://jenkins.example.com/job/my-pipeline --watch

# 带参数触发
jk build trigger https://jenkins.example.com/job/my-pipeline -p ENV=prod -p VERSION=1.2.0 --watch

--watch 会阻塞直到构建完成,退出码直接反映构建状态:0 表示 SUCCESS,1 表示 FAILURE,2 表示 UNSTABLE,3 表示 ABORTED,4 表示 PENDING_INPUT,>=10 表示 jk 自身错误------Agent 可以直接用 $? 判断下一步怎么走。

实时跟踪日志

bash 复制代码
jk build logs -f https://jenkins.example.com/job/my-pipeline/lastBuild

类似 tail -f,构建运行中实时输出,构建结束自动退出。

响应 input 步骤

bash 复制代码
# 直接 proceed
jk build input https://jenkins.example.com/job/my-pipeline/lastBuild proceed

# 带参数 proceed
jk build input https://jenkins.example.com/job/my-pipeline/lastBuild proceed -p DEPLOY_TARGET=production

Pipeline 里等待人工确认的步骤,现在可以用命令触发,由脚本或 Agent 判断是否 proceed。

URL 即身份

jk 支持多种 URL 形态,不需要记 Job 名或配置别名:

  • 顶层 Pipeline:https://host/job/pipeline
  • Folder 内:https://host/job/folder/job/pipeline
  • Multibranch 分支:https://host/job/mb/job/main
  • 指定构建号:https://host/job/pipeline/42
  • 符号链接:lastBuildlastSuccessfulBuildlastFailedBuild

安装 & 快速上手

推荐用 Homebrew 安装:

bash 复制代码
brew install addozhang/tap/jk

也可以用 Go 直接安装:

bash 复制代码
go install github.com/addozhang/jk/cmd/jk@latest

或者从 Releases 页面 下载对应平台的二进制包。

配置凭证

bash 复制代码
jk auth add https://jenkins.example.com

按提示输入用户名和 API Token,凭证保存在 ~/.config/jk/credentials,权限 0600。后续所有命令自动读取,不需要每次带认证参数。如果 Jenkins 用了自签名证书,可以设置 SSL_CERT_FILE 指向 PEM 文件,或者临时加 --insecure 跳过验证。

跑一遍典型流程

bash 复制代码
# 触发构建,等结果
jk build trigger https://jenkins.example.com/job/deploy/job/main --watch

# 退出码 4 = 卡在 input,执行 proceed
jk build input https://jenkins.example.com/job/deploy/job/main/lastBuild proceed

# 实时看日志
jk build logs -f https://jenkins.example.com/job/deploy/job/main/lastBuild

三条命令,覆盖了日常 90% 的 Pipeline 操作。

总结

jk 不是要替代 Jenkins,而是把 Jenkins 的操作界面从浏览器搬到终端。对于每天和 Pipeline 打交道的工程师来说,少几次鼠标点击不是目的,真正的价值是让 Jenkins 操作可以进入脚本、进入 Makefile、进入 AI Agent 的工具链。

对 AI coding Agent 来说,jk 加上 skill,是目前最轻量的 Jenkins 接入方案。

Jenkins 还没打算消失,但操作它的方式可以现代化一点。

项目地址:github.com/addozhang/jk,欢迎试用和 Star。

相关推荐
Gnix102972 天前
Copier 总报错?一篇讲透排查、升级、治理和团队落地
devops
lunzi_082612 天前
【开源治理】05-把流程翻译成门禁:开源治理嵌入 DevOps 流水线实战
供应链管理·devops·开源治理
程序员老赵12 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops
醉颜凉12 天前
Elasticsearch高性能优化:Bulk API大规模数据导入性能调优全攻略
elasticsearch·性能优化·jenkins
宋均浩12 天前
# pytest 的 5 个 fixture 骚操作,我用了 3 年才学会
devops
睡不醒男孩03082313 天前
云原生运维实战:高并发架构下的云原生可观测性、韧性降级与自动化干预体系
数据库·kubernetes·高并发·prometheus·devops·sre·缓存调优
爱学习的程序媛13 天前
DevOps 深度解析:从文化理念到落地实践
运维·devops
sbjdhjd13 天前
从零搭建企业级 CI/CD(下):Jenkins+GitLab+Harbor 全链路实战指南
git·servlet·ci/cd·云原生·云计算·gitlab·jenkins
小美元13 天前
【爽之】使用jenkins实现前端一键发版
运维·jenkins
至乐活着13 天前
Docker Compose多服务编排实战:从零搭建Node.js+MySQL+Redis全栈应用
docker·微服务·devops·容器编排·compose