关于 github-actions-efficiency
用于审查和改进 GitHub Actions 效率的技能,面向处理 CI 耗时、成本或工作流设计的仓库维护者。它要求依据审计证据和约束筛选改动,并区分实测与静态验证。
主要功能
- 01检查工作流配置和近期运行
- 02依据审计证据识别 CI 浪费
- 03为建议的改动应用约束
- 04按优先级列出至多三项优化
- 05区分实时验证与静态审查
适用场景
- 01查找 CI 缓慢或昂贵的原因
- 02建立 GitHub Actions 基线
- 03审查缓存、触发器、矩阵或并发设置
- 04报告 CI 预期与实测影响
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ github/ awesome-copilot --skill github-actions-efficiency安装后在 Claude Code 中输入/github-actions-efficiency确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/actions.mdpatterns.mdreporting.mdreview-rubric.md详细介绍
GitHub Actions 效率
将此技能作为 GitHub Actions 效率工作的入口。检查仓库,找出浪费来源,并仅加载当前任务所需的参考资料。
如果尚不存在任何工作流,请加载 references/actions.md,并在继续执行以下步骤之前定义基线。
如果无法使用 shell 或 gh CLI 访问权限: 请用户粘贴 .github/workflows/ 内容以及 gh run list --limit 10 输出。如果仅提供了部分文件,请注明:“仅基于所提供的文件进行审计;部分洞察可能不完整。” 仅基于文件作出的回复请以如下内容开头:“仅静态分析(未经实际运行确认)。”
何时使用此技能
- 用户希望减少 GitHub Actions 运行时间、CI 成本或浪费的工作流运行。
- 仓库在
.github/workflows/中已有工作流,或有明确的 GitHub Actions 配置问题。 - 用户要求缓存、并发、路径过滤、矩阵缩减、作业优化或特定工作流修复。
- 用户需要从零开始帮助创建新的 GitHub Actions 工作流或 CI 基线。
只加载你需要的内容
references/actions.md— 审计、作业门控、矩阵缩减、实时验证以及特定工作流修复。references/reporting.md— 当用户要求前后效率报告时使用。references/patterns.md— 当内联审计命令不够用时,提供完整 YAML 示例。
核心工作流
1. 先测量
rg -n "on:|concurrency:|paths:|paths-ignore:|strategy:|matrix:|cache:" .github/workflows
gh run list --limit 10
run_id=$(gh run list --limit 1 --json databaseId --jq '.[0].databaseId')
gh run view "$run_id" --log-failed
查找:缺失的依赖缓存、缺失的 concurrency 取消、过宽的触发器、重复的工作流覆盖范围,以及无论范围如何都会在每次变更时运行的昂贵作业。
2. 应用护栏
在推荐每项拟议修复之前,请对照以下规则检查:
- 不隐藏必需的验证 — 丢弃任何移除发布、schema、迁移或共享库检查的修复。
- 无正当理由不降低并行性 — 除非用户优先考虑成本而非延迟,并且 新的关键路径保持在原始的 1.25× 以内,否则丢弃。
- 仅保留有文档记录的矩阵组合 — 丢弃没有明确版本或平台承诺的矩阵组合。
- 写回作业使用选择性加入触发器 — 标记(不要丢弃)会自动运行的格式化程序或机器人作业;建议改用选择性加入触发器。
- 仓库更改与组织设置保持分离 — 将任何混合仓库可编辑 YAML 与组织级或 GitHub 账户设置的修复拆分为两条不同的建议。
3. 选择前 3 项修复
从以下六个候选项中,仅保留有步骤 1 审计证据支持 并且 通过步骤 2 所有护栏的项。按预计每日节省的 CI 分钟数(每次运行节省 × 每日运行次数)对幸存项排序。选择所有同时满足两个标准的候选项,最多 3 项。
- 使用基于 lockfile 的键添加依赖缓存
- 添加或修正
concurrency取消 - 在合并作业之前移除重复的工作流覆盖范围
- 安全地收窄工作流或作业触发器
- 将矩阵范围缩减至与风险和事件类型匹配
- 并行化关键路径上的独立作业
4. 验证
- 如果可以使用
ghCLI 访问权限,请在非保护分支上进行实时测试推送,以验证路径门控和并发取消。 - 如果无法进行实时验证,请在输出中明确说明。
- 即使 YAML 看起来正确,也要将意外的实时行为视为真实 bug。
必需输出
- 浪费来源 — 步骤 1 中发现的最高成本或延迟驱动因素
- 拟议修复 — 前 3 项(或所有剩余项),并附支持性审计证据
- 验证 — 哪些已在实时环境中得到证明,哪些仅在本地检查过,以及任何剩余风险
- 影响 — 预期节省与实际节省;将 PR 墙钟时间与总 runner 时间分开
参考资料
评论
支持 Markdown