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

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

TLDR

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 信息

jk pipeline info https://jenkins.example.com/job/my-pipeline

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

触发构建

# 触发并等待结果,退出码反映构建状态
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 可以直接用 $? 判断下一步怎么走。

实时跟踪日志

jk build logs -f https://jenkins.example.com/job/my-pipeline/lastBuild

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

响应 input 步骤

# 直接 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 安装:

brew install addozhang/tap/jk

也可以用 Go 直接安装:

go install github.com/addozhang/jk/cmd/jk@latest

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

配置凭证

jk auth add https://jenkins.example.com

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

跑一遍典型流程

# 触发构建,等结果
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。

(转载本站文章请注明作者和出处乱世浮生,请勿用于任何商业用途)

comments powered by Disqus