设计、调试和加固GitHub Actions工作流,实现可复用流水线、安全权限及更快的CI/发布自动化。
设置 : 在第一次激活时, 读取设置 . md , 以在编辑工作流程或触发运行前调整自动激活规则、 重播形状和突变边界是一项面向实际任务的技能,主要用于User 需要 GitHub Actions w。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
首次启用时,请先阅读 setup.md,以对齐自动激活规则、仓库结构(repo shape)及变更边界(mutation boundaries),再编辑工作流或触发运行。
当用户需要设计、调试、加固 GitHub Actions 工作流,或编排发布流程、规划 runner 策略、调优 matrix、修复缓存问题、构建可复用工作流架构时,请使用本技能。
仅在结果依赖 GitHub Actions 语义与 GitHub 发布控制能力(而非通用 CI 建议)时使用本技能。
记忆数据存储于 ~/github-actions/ 目录下。基础结构请参见 memory-template.md。
~/github-actions/
|-- memory.md # 持久化仓库上下文与激活边界
|-- repo-map.md # 仓库列表、分支、包管理器及部署目标
|-- workflow-defaults.md # 触发器、权限、缓存与 runner 的稳定默认配置
|-- incidents.md # 故障特征、根本原因及修复方案
`-- release-rules.md # 发布准入门禁、审批要求与回滚说明
仅加载当前工作流问题所需文件。
| 主题 | 文件 |
|---|---|
| 设置与激活行为 | setup.md |
| 记忆数据模式与状态模型 | memory-template.md |
| 编写模式与可复用工作流结构 | workflow-patterns.md |
| 权限、密钥、OIDC 与 fork 安全性 | security-model.md |
| 运行失败排查与日志优先调试 | debugging-playbook.md |
| 标签、发布与部署编排 | release-patterns.md |
| 缓存、matrix、路径过滤与 runner 效率优化 | performance-tuning.md |
gh、jq、act切勿要求用户提供个人访问令牌(PAT)、云平台密钥或私有签名材料等敏感信息。
本技能中的 YAML 片段均为仓库工作流文件的示例。
诸如 ${{ github.* }}、${{ inputs.* }}、${{ vars.* }} 和 ${{ secrets.* }} 等引用属于 GitHub Actions 运行时环境,而非 agent 运行时环境。
agent 应围绕这些占位符进行设计,但不应期望直接读取其实际值。
本技能将 GitHub Actions 视为交付操作系统(delivery OS),覆盖以下方面:
push、pull_request、workflow_dispatch、schedule 和 workflow_call 等各类触发器的工作流编写~/github-actions/ 下的本地笔记可能包含:
编辑 YAML 前,须明确定义:
缺乏该契约,工作流易退化为职责不清的步骤集合,导致发布行为不可预测。
在 workflow 或 job 级别声明 permissions:,且仅授予该 job 实际所需的最小权限。
将 contents: write、packages: write 与 id-token: write 视为例外情形,须提供明确理由。
将 pull request 验证、产物生成、发布分发与生产部署作为相互独立的责任单元。
优先使用 workflow_call 或轻量级可复用 job,避免构建一个承担全部功能的巨型工作流。
使用 concurrency 实现按分支或 environment 的运行取消;添加 timeout-minutes;通过分支或路径规则过滤噪声事件。
若未加约束,冗余运行将迅速耗尽分钟配额。
以 lockfile 或显式版本号为键,缓存包管理器状态、工具链及稳定的构建输出。
使用 artifacts 实现 job 间的数据传递;禁止缓存依赖密钥、时间戳或可变部署状态的路径。
重写工作流前,先对故障进行分类:
应修复真实存在的故障模式,而非仅处理“熟悉”的表象。
尽可能使用 GitHub environments、审批门禁(reviewer gates)与 OIDC 联邦认证。
避免长期有效的云平台密钥、未经审查的 workflow_dispatch 部署,以及由不受信任事件触发的生产环境写入操作。
ubuntu-latest 行为 → runner 镜像更新后突发工具链漂移。| 端点 | 发送数据 | 用途 |
|---|---|---|
| https://github.com | 仓库元数据、git refs、工作流文件、运行页面与产物访问权限 | GitHub 仓库与 Actions UI 工作流交互 |
| https://api.github.com | 工作流、运行、检查(check)、发布与仓库 API 请求载荷 | 基于 API 的 Actions 检查与控制 |
| 工作流中显式配置的云平台或部署端点 | 部署载荷、构建产物与短期有效认证令牌 | 经用户批准后的发布与部署步骤 |
除非工作流本身已配置调用其他服务,否则不应向外部发送任何额外数据。
离开您本地机器的数据包括:
保留在本地的数据包括:
~/github-actions/ 下的操作笔记本技能不会:
SKILL.md本技能依赖 GitHub 平台,以及用户显式接入工作流的任意部署系统。
仅当您信任这些系统对仓库与发布数据的处理能力时,才应安装并运行本技能。
本技能仅限于:
本技能绝不:
若用户确认,可通过 clawhub install 安装:
ci-cd —— 在锁定单一平台前,先行选定 CI 与部署策略。git —— 围绕工作流事件,强化分支、标签与历史管理。workflow —— 设计职责更清晰、门禁更明确的多步骤执行系统。devops —— 将交付流水线与基础设施及运维防护机制对接。docker —— 提升 Actions 工作流中容器构建、缓存与镜像仓库操作的效率。clawhub star github-actionsclawhub sync