# Jenkins Pipeline Diagnosis

> 用于根据用户提供的Jenkins Job构建链接进行失败问题诊断的技能。当用户需要分析Jenkins流水线构建失败原因时使用，通过调用Jenkins API获取构建结果、分析失败阶段、检查构建日志和测试报告，提供详细的失败诊断报告。

- Skill: `daleiawei/jenkins-pipeline-diagnosis` (Agent Skill)
- Install (CLI): `npx skillmds@latest add daleiawei/jenkins-pipeline-diagnosis`
- Raw SKILL.md: https://api.skillmd.com/api/skills/daleiawei/jenkins-pipeline-diagnosis/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: daleiawei (https://skillmd.com/u/daleiawei)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/daleiawei/jenkins-pipeline-diagnosis

---


# Jenkins Pipeline Diagnosis

## Overview

此技能用于诊断Jenkins流水线构建失败的原因，通过分析构建日志和测试报告，提供详细的失败诊断报告，帮助用户快速定位和解决构建问题。

## Workflow

### 1. 调用工具脚本diagnose_jenkins_build.py生成诊断报告
- 脚本路径：`scripts/diagnose_jenkins_build.py`
- 功能：主诊断脚本，协调整个诊断流程，包括获取构建信息、定位失败阶段、分析失败原因并生成报告
- 参数：
  - `jenkins_build_url`: 用户提供的Jenkins Job构建链接（例如：https://jenkins.example.com/job/my-job/123/）

## Resources

### scripts/
包含用于与Jenkins API交互和分析日志的脚本：

- `diagnose_jenkins_build.py`: 主诊断脚本，协调整个诊断流程，包括获取构建信息、定位失败阶段、分析失败原因并生成报告
- `jenkins_api.py`: 封装Jenkins API工具调用，获取构建结果、阶段信息和日志信息
- `log_analyzer.py`: 分析构建日志，识别失败关键字和上下文
- `report_generator.py`: 生成诊断报告的工具

### references/
包含Jenkins API文档和失败模式参考：

- `jenkins_api_reference.md`: Jenkins API使用参考
- `failure_patterns.md`: 常见失败模式和解决方案

### assets/
包含诊断报告模板和示例：

- `report_template.md`: 诊断报告模板

---

## Usage

### Input
- Jenkins Job构建链接（例如：https://jenkins.example.com/job/my-job/123/）

### Output
- 详细的构建失败诊断报告，包括：
  - 构建基本信息（Job名称、构建编号、构建状态）
  - 失败阶段信息
  - 失败关键字和上下文
  - 测试失败详情（如果适用）
  - 失败原因分析
  - 解决方案建议

### Example

**User Input:**
```
帮我诊断这个Jenkins构建失败的原因：https://jenkins.example.com/job/my-project/456/
```

**Expected Output:**
```
# Jenkins构建失败诊断报告

## 基本信息
- Job名称: my-project
- 构建编号: 456
- 构建状态: FAILED
- 构建时间: 2024-01-20 10:30:45

## 失败阶段
- 阶段名称: test
- 开始时间: 2024-01-20 10:25:30
- 结束时间: 2024-01-20 10:30:45
- 持续时间: 5分15秒

## 失败节点
- 阶段名称: test
- 开始时间: 2024-01-20 10:25:30
- 结束时间: 2024-01-20 10:30:45
- 持续时间: 5分15秒


## 失败原因
- 关键字: ERROR
- 上下文: 
```
  [ERROR] Tests run: 10, Failures: 2, Errors: 0, Skipped: 1
  [ERROR] Failed tests:
  [ERROR]   com.example.TestClass.testMethod1
  [ERROR]   com.example.TestClass.testMethod2
  ```

## 测试失败详情
- 测试类: com.example.TestClass
- 失败方法: testMethod1, testMethod2
- 失败原因: 断言失败 - 预期值与实际值不匹配

## 诊断分析
构建失败是由于测试阶段的单元测试失败导致的。具体是TestClass中的两个测试方法断言失败，可能是由于代码变更导致的行为变化。

## 解决方案建议
1. 检查com.example.TestClass中的testMethod1和testMethod2方法
2. 确认最近的代码变更是否影响了这些测试
3. 更新测试用例以匹配新的预期行为，或修复代码以符合测试预期
4. 重新运行构建验证修复结果
  ```

