mcpField
J
jenkins

jenkins

github.com/checkmk测试与质量2.6k77 次安装今天更新
代码仓库

关于 jenkins

jenkins 是用于诊断 Jenkins CI 失败并检查构建产物的 Skill。它引导用户查看阶段与测试结果、控制台输出、子任务以及 Playwright 跟踪记录。

主要功能

  1. 01检查构建阶段和失败测试
  2. 02查看子任务与控制台详情
  3. 03轮询运行中的构建
  4. 04下载构建产物
  5. 05分析 Playwright 跟踪记录

适用场景

  1. 01定位构建中的失败阶段和测试
  2. 02检查触发子任务的控制台输出
  3. 03持续跟踪运行中的构建结果
  4. 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

评论

支持 Markdown