GitHubActions生成器 github-actions-generator

这是一个综合工具包,用于生成遵循当前最佳实践、安全标准和命名约定的GitHub Actions工作流和自定义操作。它适用于创建新的GitHub Actions资源、实施CI/CD工作流或构建可重用操作。

DevOps 0 次安装 0 次浏览 更新于 3/4/2026

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管道…”

流程:

  1. 理解需求(触发器、运行器、依赖项)
  2. 参考references/best-practices.md以获取模式
  3. 参考references/common-actions.md以获取操作版本
  4. 生成工作流,包括:
    • 语义名称、固定操作(SHA)、适当的权限
    • 并发控制、缓存、矩阵策略
  5. 验证 使用devops-skills:github-actions-validator技能
  6. 如有需要,修复问题并重新验证

最小示例:

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访问、复杂逻辑 → 最快

流程:

  1. 使用assets/templates/action/中的模板
  2. 遵循references/custom-actions.md中的结构
  3. 包括品牌、输入/输出、文档
  4. 验证 使用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. 公共操作文档

使用公共操作时:

  1. 搜索文档:
    "[owner/repo] [version] github action documentation"
    
  2. 或使用Context7 MCP:
    • mcp__context7__resolve-library-id以找到操作
    • mcp__context7__get-library-docs以获取文档
  3. 固定到SHA,并添加版本注释:
    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
    

参阅references/common-actions.md以获取预先验证的操作版本。


验证工作流

CRITICAL: 每个生成的资源都必须经过验证。

  1. 生成工作流/操作文件
  2. 调用devops-skills:github-actions-validator技能
  3. 如果有错误:修复并重新验证
  4. 如果成功:提供使用说明

仅在以下情况下跳过验证:

  • 部分代码片段
  • 文档示例
  • 用户明确请求跳过

强制标准

所有生成的资源都必须遵循:

标准 实施
安全 固定到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 }}

工作流摘要

  1. 理解 需求
  2. 参考 适当文档
  3. 生成 标准
  4. 搜索 公共操作文档(如需要)
  5. 验证 使用devops-skills:github-actions-validator
  6. 修复 任何错误
  7. 呈现 验证结果