关于 jenkins
jenkins 是用于诊断 Jenkins CI 失败并检查构建产物的 Skill。它引导用户查看阶段与测试结果、控制台输出、子任务以及 Playwright 跟踪记录。
主要功能
- 01检查构建阶段和失败测试
- 02查看子任务与控制台详情
- 03轮询运行中的构建
- 04下载构建产物
- 05分析 Playwright 跟踪记录
适用场景
- 01定位构建中的失败阶段和测试
- 02检查触发子任务的控制台输出
- 03持续跟踪运行中的构建结果
- 04通过跟踪记录排查 GUI 测试失败
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ checkmk/ checkmk --skill jenkins安装后在 Claude Code 中输入/jenkins确认已加载。
详细介绍
诊断 CI 失败
始终从这里开始——一次调用即可查看各阶段、测试失败情况和子作业 URL:
jenkins_build_data.py <URL> --include=stages,tests --failed-only
深入查看已触发的子作业(在阶段输出中显示为 Job: <url>):
jenkins_build_data.py <triggered-job-url> --include=console,tests
完整控制台(默认显示最后 100 行):
jenkins_build_data.py <URL> --include=full-console
轮询正在运行的构建:
jenkins_build_data.py <URL> --include=stages,tests --poll --poll-interval=60
不要使用 curl——工具会处理身份验证、阶段关联和测试解析。
下载构建产物
下载目录始终使用 /tmp/jenkins-artifacts:
jenkins_build_data.py <url> --download "<artifact>" --download-dir /tmp/jenkins-artifacts
解析下载的 json
优先使用 jq,而不是 python3 命令。
分析失败的 GUI E2E 测试的 Playwright trace
GUI E2E 测试失败时,构建产物中通常会有 Playwright trace zip 文件。
1. 查找并下载 trace
列出构建产物以找到 trace(查找匹配 *trace* 或 *.zip 的文件):
jenkins_build_data.py <url> --include=artifacts
下载它:
jenkins_build_data.py <url> --download "<artifact-path>" --download-dir /tmp/jenkins-artifacts
2. 使用 playwright-trace-analyzer 分析 trace
playwright-trace-analyzer 是一款 CLI 工具,无需浏览器即可检查 trace zip 文件。
使用前,请确认已安装:
playwright-trace-analyzer --version
如果找不到该命令,请让用户安装:
uv tool install playwright-trace-analyzer
先查看概览:
playwright-trace-analyzer summary /tmp/jenkins-artifacts/<trace>.zip
然后深入查看操作,找出失败位置:
playwright-trace-analyzer actions /tmp/jenkins-artifacts/<trace>.zip
如果失败可能与 API 有关,请检查网络请求:
playwright-trace-analyzer network /tmp/jenkins-artifacts/<trace>.zip
检查浏览器控制台错误:
playwright-trace-analyzer console /tmp/jenkins-artifacts/<trace>.zip
将构建标记为永久保留
若要防止 Jenkins 垃圾回收某个构建(例如,保留不稳定测试的证据),请使用 toggleLogKeep API 端点。通过 ~/.netrc 进行身份验证(与 jenkins_build_data.py 相同):
python3 -c "
import netrc, urllib.request, base64
n = netrc.netrc()
login, _, password = n.authenticators('ci.lan.tribe29.com')
url = '<BUILD_URL>/toggleLogKeep'
req = urllib.request.Request(url, method='POST', data=b'')
credentials = base64.b64encode(f'{login}:{password}'.encode()).decode()
req.add_header('Authorization', f'Basic {credentials}')
resp = urllib.request.urlopen(req)
print(f'Status: {resp.status}')
"
将 <BUILD_URL> 替换为完整的 Jenkins 构建 URL(例如 https://ci.lan.tribe29.com/job/checkmk/job/master/.../123)。这是一个切换开关——再次调用会移除“永久保留”标记。
不要使用 $JENKINS_API_TOKEN 配合 curl——这样行不通。请使用上方所示的 ~/.netrc 凭据进行 Basic 身份验证。
如果缺少命令 jenkins_build_data.py
请让用户克隆 zeug_cmk git 存储库并将其添加到 PATH。 另请参阅:https://wiki.lan.checkmk.net/x/4zBSCQ