ci-fix 是一个面向 Rust 项目的 CI 修复技能,用于诊断和修复 GitHub Actions 的 CI 失败,可借助历史 CI 问题中的常见模式快速排查。它适用于 CI 失败、测试超时或出现 lint 问题时。
主要能力与用法:先用 gh run list --limit 5 --json status,conclusion,name,headBranch 获取 CI 状态,再用 gh run view <run_id> --log --job <job_name> 查看失败作业日志,然后把失败归类为 lint(fmt/clippy 警告)、test(测试失败或超时)、build(编译错误)、security(cargo audit/deny 失败)、coverage(覆盖率未达标)、deprecated(过时的 action 版本,常见)。
对应修复包括:更新过时的 GitHub Actions 版本到 v2+;对可选依赖问题使用 cargo build --workspace --exclude do-memory-mcp;用 cargo fmt --all、cargo clippy --workspace --fix --allow-dirty 处理 lint;用 cargo test --workspace -- --nocapture 跑测试;用 cargo audit、cargo deny check 检查安全;用 cargo build --workspace 构建;覆盖率不足时用 cargo tarpaulin --workspace 生成覆盖率并检查工作流中的阈值;基准测试超时可调大 workflow YAML 中的 timeout-minutes。
针对 Codecov Patch Coverage 缺失,步骤为:先解析报告,找出缺失行;定位未覆盖代码(新函数、抽取出的子模块、变更分支);在 #[cfg(test)] mod tests 或同级测试文件中编写针对性测试(新公开函数、新结构体、重构代码、分支覆盖);用 cargo nextest run -p <crate> -E 'test(<test_name_pattern>)' 和 cargo clippy --workspace -- -D warnings 验证;最后以单个原子提交提交,例如 test(coverage): add tests for Codecov patch gaps in N files。
成功标准是所有 CI 作业通过且不引入新警告。以上命令与代码内容均按原始资料保留,未作改动;资料未提供收费、价格、平台等信息。