告别 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。

相关推荐
至乐活着4 小时前
Ansible自动化运维实战:从零部署高可用Nginx+静态网站集群
ansible·自动化运维·devops·playbook·配置管理
weixin_307779136 小时前
Linux下Jenkins数据故障的系统化排查Shell脚本
linux·运维·服务器·jenkins
增量星球1 天前
《持续交付2.0系列六》业务需求协作管理
java·运维·自动化·devops·持续部署·持续集成
砍材农夫1 天前
运维|devops|nginx|基本配置拆解
运维·nginx·devops
love530love2 天前
ComfyUI 插件发布 GitHub Release + Comfy Registry (官方节点商店)完整复盘教程(从零开始)
人工智能·windows·github·devops
龙智DevSecOps解决方案3 天前
Perforce Intelligence 三大平台全新发布:当自动化升级为“自主化”,AI 时代的工作流该如何编排?
软件测试·人工智能·devops·perforce
海兰3 天前
【Elasticsearch】工作流自动化评估
elasticsearch·自动化·jenkins
tianyuanwo3 天前
深入掌握 java -jar 命令:从基础到 Jenkins Agent 实战
java·jenkins·jar
Geek-Chow4 天前
04 Touring the Stack: One Checkout, Traced Through Every Container
devops
这个需求做不了4 天前
Jenkins自动化构建与CI/CD流水线,并配置GitLab
java·ci/cd·自动化·gitlab·jenkins