CI失败

diegosouzapw2026-10-28查看 1345复制 1217

诊断 GitHub Actions CI 失败并建议修复方案。当用户报告 CI 失败、GitHub 作业失败、Actions 失败、远程构建失败、上传制品失败,或粘贴来自 Actions 选项卡的失败信息时使用。

Download (.md)

📘如何使用这个技能

  1. 1
    复制技能内容·点击上方「Copy SKILL.md」复制全部内容,或 Download 下载到本地
  2. 2
    打开你的 AI 客户端·支持 Claude Code、Trae、Cursor、ChatGPT、DeepSeek、Kimi 等任意 AI 助手
  3. 3
    粘贴为系统提示/知识文件·Claude Code:放入 .claude/skills/ 目录;普通对话:作为首条消息发送并说「请严格按这份技能文档执行」
  4. 4
    直接提出你的需求·AI 会按技能定义的工作流、格式和约束来处理,无需再解释背景

💡 提示:技能生效后,每次对话只需一句需求,AI 会按 SKILL.md 的流程执行。

SKILL.md2923 chars
---
name: ci-failure
description: Diagnose GitHub Actions CI failures and suggest fixes. Use when the user reports CI failed, GitHub job failed, Actions failed, build failed on remote, upload artifact failed, or pastes a failure from the Actions tab.
---

# CI Failure Diagnosis

When the user reports a **remote GitHub Actions / CI failure** (or pastes a failure from the Actions tab), apply this skill.

## 1. Load Context First

Read these files **immediately** to understand this repo’s CI:

- **Workflow:** `.github/workflows/ci.yml` (and `.github/workflows/security.yml` if the failure mentions security)
- **Pipeline summary:** `docs/ci.md`

Use them to map the failure to a job and step and to apply repo-specific fixes.

## 2. Identify Job and Step

From the user’s message or pasted log, determine:

- **Job name** (e.g. Lint, Type Check, Test, Build, Docker Build, Notify Slack)
- **Step name** (e.g. "Run ESLint", "Build application", "Upload build artifacts")

If the user only pastes an error line (e.g. "No files were found with the provided path: .next"), infer the step from the message and the workflow.

## 3. Map to Fix

| Failure / Log | Job | Step | Action |
|--------------|-----|------|--------|
| ESLint error, file:line | Lint | Run ESLint | Fix the reported file/line; run `npm run lint` locally. |
| Type error, tsc | Type Check | Run TypeScript compiler | Fix the type; run `npx tsc --noEmit` locally. |
| Test failure, vitest | Test | Run tests | Fix test or app code; run `npm test` locally. |
| Build error, Next.js, OOM | Build | Build application | Check "Build application" logs; confirm `NODE_OPTIONS=--max-old-space-size=4096` in workflow; fix build error or increase memory. |
| No files .next, upload artifact | Build | Build application / Upload | Build didn’t produce `.next`; check "Build application" step logs. Ensure workflow has List build output, "Fail if build did not produce .next", and conditional upload (see docs/ci.md). |
| Docker build failed | Docker Build | Build Docker image | Check Dockerfile and build-args (MONGODB_URI, MONGODB_DB). |
| Notify Slack / health | Notify Slack | — | Check Secrets (SLACK_WEBHOOK_URL) and Variables (APP_URL); see docs/ci.md and readme. |

## 4. Respond

1. **Say which job and step failed** (and link to workflow if helpful).
2. **Give a short cause** (e.g. "Build didn’t produce `.next`" or "ESLint error in `src/foo.ts`").
3. **Suggest a concrete fix** (workflow change, code change, or env/secret), using `docs/ci.md` and `.github/workflows/ci.yml` as the source of truth.
4. If the user pasted only one line, **ask for the full job log** for the failing step if you need it to be precise (e.g. "Paste the full 'Build application' step log from the Build job").

## 5. Optional: Cursor Rule

For more detail on mapping failures and repo-specific CI, see `.cursor/rules/github-ci.mdc` (it aligns with this skill and docs/ci.md).
来源:skillsdirectory

评论0

登录后参与评论

还没有评论,来抢沙发吧