name: github-actions-generator description: 综合工具包,用于生成遵循当前最佳实践、安全标准和命名约定的最佳实践GitHub Actions工作流、自定义本地操作和配置。在创建新的GitHub Actions资源、实施CI/CD工作流或构建可重用操作时使用此技能。
GitHub Actions 生成器
生成生产就绪的GitHub Actions工作流和自定义操作,遵循当前最佳实践、安全标准和命名约定。所有生成的资源都使用devops-skills:github-actions-validator技能自动验证。
快速参考
| 功能 | 何时使用 | 参考 |
|---|---|---|
| 工作流 | CI/CD、自动化、测试 | references/best-practices.md |
| 组合操作 | 可重用的步骤组合 | references/custom-actions.md |
| Docker操作 | 自定义环境/工具 | references/custom-actions.md |
| JavaScript操作 | API交互、复杂逻辑 | references/custom-actions.md |
| 可重用工作流 | 跨仓库共享模式 | references/advanced-triggers.md |
| 安全扫描 | 依赖性审查、SBOM | references/best-practices.md |
| 现代特性 | 摘要、环境 | references/modern-features.md |
核心能力
1. 生成工作流
触发器: “创建一个工作流…”, “构建一个CI/CD管道…”
流程:
- 理解需求(触发器、运行器、依赖项)
- 参考
references/best-practices.md以获取模式 - 参考
references/common-actions.md以获取操作版本 - 生成工作流,包括:
- 语义名称、固定操作(SHA)、适当的权限
- 并发控制、缓存、矩阵策略
- 验证 使用devops-skills:github-actions-validator技能
- 如有需要,修复问题并重新验证
最小示例:
name: CI Pipeline
on:
push:
branches: [main]
pull_request:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
with:
node-version: '20'
cache: 'npm'
- run: npm ci
- run: npm test
2. 生成自定义操作
触发器: “创建一个组合操作…”, “构建一个Docker操作…”, “创建一个JavaScript操作…”
类型:
- 组合: 组合多个步骤 → 快速启动
- Docker: 自定义环境/工具 → 隔离
- JavaScript: API访问、复杂逻辑 → 最快
流程:
- 使用
assets/templates/action/中的模板 - 遵循
references/custom-actions.md中的结构 - 包括品牌、输入/输出、文档
- 验证 使用devops-skills:github-actions-validator技能
参阅references/custom-actions.md以获取:
- 操作元数据和品牌
- 目录结构模式
- 版本控制和发布工作流
3. 生成可重用工作流
触发器: “创建一个可重用工作流…”, “使此工作流可调用…”
关键元素:
workflow_call触发器,带类型输入- 显式秘密(避免
secrets: inherit) - 从作业输出映射的输出
- 最小权限
on:
workflow_call:
inputs:
environment:
required: true
type: string
secrets:
deploy-token:
required: true
outputs:
result:
value: ${{ jobs.build.outputs.result }}
参阅references/advanced-triggers.md以获取完整模式。
4. 生成安全工作流
触发器: “添加安全扫描…”, “添加依赖性审查…”, “生成SBOM…”
组件:
- 依赖性审查:
actions/dependency-review-action@v4 - SBOM证明:
actions/attest-sbom@v2 - CodeQL分析:
github/codeql-action
所需权限:
permissions:
contents: read
security-events: write # For CodeQL
id-token: write # For attestations
attestations: write # For attestations
参阅references/best-practices.md中关于安全的章节。
5. 现代特性
触发器: “添加作业摘要…”, “使用环境…”, “在容器中运行…”
参阅references/modern-features.md以获取:
- 作业摘要(
$GITHUB_STEP_SUMMARY) - 带审批的部署环境
- 带服务的容器作业
- 工作流注释
6. 公共操作文档
使用公共操作时:
- 搜索文档:
"[owner/repo] [version] github action documentation" - 或使用Context7 MCP:
mcp__context7__resolve-library-id以找到操作mcp__context7__get-library-docs以获取文档
- 固定到SHA,并添加版本注释:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
参阅references/common-actions.md以获取预先验证的操作版本。
验证工作流
CRITICAL: 每个生成的资源都必须经过验证。
- 生成工作流/操作文件
- 调用
devops-skills:github-actions-validator技能 - 如果有错误:修复并重新验证
- 如果成功:提供使用说明
仅在以下情况下跳过验证:
- 部分代码片段
- 文档示例
- 用户明确请求跳过
强制标准
所有生成的资源都必须遵循:
| 标准 | 实施 |
|---|---|
| 安全 | 固定到SHA,最小权限,遮罩秘密 |
| 性能 | 缓存、并发、浅层检出 |
| 命名 | 描述性名称,小写连字符文件 |
| 错误处理 | 超时,使用if: always()进行清理 |
参阅references/best-practices.md以获取完整指南。
资源
参考文档
| 文档 | 内容 | 何时使用 |
|---|---|---|
references/best-practices.md |
安全、性能、模式 | 每个工作流 |
references/common-actions.md |
操作版本、输入、输出 | 公共操作使用 |
references/expressions-and-contexts.md |
${{ }}语法、上下文、函数 |
复杂条件 |
references/advanced-triggers.md |
workflow_run、dispatch、ChatOps | 工作流编排 |
references/custom-actions.md |
元数据、结构、版本控制 | 自定义操作创建 |
references/modern-features.md |
摘要、环境、容器 | 增强工作流 |
模板
| 模板 | 位置 |
|---|---|
| 基本工作流 | assets/templates/workflow/basic_workflow.yml |
| 组合操作 | assets/templates/action/composite/action.yml |
| Docker操作 | assets/templates/action/docker/ |
| JavaScript操作 | assets/templates/action/javascript/ |
常见模式
矩阵测试
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
node: [18, 20, 22]
fail-fast: false
条件部署
deploy:
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
工件共享
# 上传
- uses: actions/upload-artifact@v4
with:
name: build-${{ github.sha }}
path: dist/
# 下载(在依赖作业中)
- uses: actions/download-artifact@v4
with:
name: build-${{ github.sha }}
工作流摘要
- 理解 需求
- 参考 适当文档
- 生成 标准
- 搜索 公共操作文档(如需要)
- 验证 使用devops-skills:github-actions-validator
- 修复 任何错误
- 呈现 验证结果