文档Actions 配方Actions 概览

Claude Code Actions 配方中心

Claude Code Actions 配方中心为您提供经过生产验证的专业级 GitHub Actions 工作流配方,与 Claude Code 深度集成,实现智能化的软件开发生命周期管理。每个配方都经过精心设计,遵循最佳实践,可直接应用于企业级项目。

Actions 配方概述

什么是 Claude Code Actions 配方?

Claude Code Actions 配方是专门为 Claude Code 用户定制的 GitHub Actions 工作流模板集合,具有以下特点:

  • 智能化集成:与 Claude Code 的 AI 辅助开发流程深度融合
  • 企业级标准:符合大型项目的安全性、可靠性和性能要求
  • 模块化设计:可灵活组合,构建复杂的 CI/CD 流水线
  • 自动化驱动:最大化减少手工操作,提升开发效率

配方价值

🚀

提升效率

自动化重复性任务,让开发团队专注于核心业务逻辑开发

🔒

保障质量

内置代码质量检查、安全扫描和测试自动化,确保代码品质

📊

可视化监控

丰富的报告和指标收集,实时掌握项目健康状况

快速部署

一键部署到多种环境,支持蓝绿部署和灰度发布策略

配方分类导航

代码质量与安全

代码质量检查

高价值

集成 ESLint、Prettier、SonarQube 等工具,提供全面的代码质量分析和自动修复功能

支持多语言:JavaScript、TypeScript、Python、Java 等

自动修复:格式化、导入排序、代码风格统一

质量门禁:覆盖率、复杂度、重复度检查

ESLintPrettierSonarQube

复杂度: ⭐⭐⭐ 中等 | 维护成本:

安全漏洞扫描

关键

全方位安全检测,包括依赖漏洞、密钥泄露、Docker 镜像安全和合规性检查

依赖扫描:npm audit、Snyk、OWASP 依赖检查

密钥检测:GitLeaks、TruffleHog 敏感信息扫描

容器安全:Trivy、Clair 镜像漏洞扫描

SnykGitLeaksTrivy

复杂度: ⭐⭐⭐⭐ 较高 | 维护成本: 中等

自动化代码审查

智能

AI 驱动的代码审查,结合 Claude Code 提供智能建议和自动优化

智能审查:代码逻辑、性能问题、最佳实践检查

自动建议:重构建议、性能优化、安全改进

团队协作:PR 自动标签、审查者分配

Claude AICodeQLPR 自动化

复杂度: ⭐⭐⭐⭐⭐ 高 | 维护成本:

依赖管理优化

自动化

智能依赖更新、漏洞修复和许可证合规性检查,保持依赖生态健康

自动更新:Dependabot、Renovate 集成

许可证检查:FOSSA、License Finder 合规扫描

影响分析:依赖树分析、破坏性变更检测

DependabotRenovateFOSSA

复杂度: ⭐⭐⭐ 中等 | 维护成本: 极低

测试自动化

多环境测试矩阵

可靠

在多个操作系统、运行时版本和配置环境中并行执行测试,确保兼容性

多平台:Ubuntu、Windows、macOS 全覆盖

多版本:Node.js、Python、Java 等多版本支持

并行执行:最大化利用 GitHub Actions 并发能力

JestPytestMatrix

复杂度: ⭐⭐ 简单 | 维护成本:

E2E 测试自动化

全面

端到端测试自动化,包含 UI 测试、API 测试、性能测试和可视化回归测试

UI 测试:Playwright、Cypress 浏览器自动化

API 测试:Postman、Newman 接口测试

视觉测试:Percy、Chromatic 截图对比

PlaywrightCypressPercy

复杂度: ⭐⭐⭐⭐ 较高 | 维护成本: 中等

性能基准测试

优化

自动化性能测试,包含负载测试、压力测试和性能回归检测

负载测试:k6、Artillery 性能压测

基准测试:Benchmark.js、pytest-benchmark

回归检测:性能指标历史对比分析

k6ArtilleryLighthouse

复杂度: ⭐⭐⭐⭐ 较高 | 维护成本: 中等

测试覆盖率报告

洞察

全面的测试覆盖率分析和可视化报告,支持多种覆盖率工具集成

覆盖率收集:Istanbul、Coverage.py 等

报告生成:Codecov、Coveralls 集成

质量门禁:覆盖率阈值检查和趋势分析

CodecovIstanbulSonarCloud

复杂度: ⭐⭐ 简单 | 维护成本: 极低

自动化部署

容器化部署

云原生

Docker 容器构建、镜像优化、多平台支持和容器注册表管理

多平台构建:AMD64、ARM64 架构支持

镜像优化:多阶段构建、层缓存优化

注册表集成:Docker Hub、ECR、Harbor

DockerBuildxMulti-arch

复杂度: ⭐⭐⭐ 中等 | 维护成本:

云平台部署

多云

支持 AWS、Azure、Google Cloud 等主流云平台的自动化部署

AWS:ECS、Lambda、S3 静态站点部署

Azure:App Service、Functions、Storage

GCP:Cloud Run、Functions、Storage

AWSAzureGCP

复杂度: ⭐⭐⭐⭐ 较高 | 维护成本: 中等

蓝绿部署策略

零停机

实现零停机部署,包含蓝绿切换、灰度发布和自动回滚机制

蓝绿切换:流量无缝切换和环境管理

灰度发布:渐进式流量分配策略

自动回滚:健康检查失败自动回滚

Blue-GreenCanaryRollback

复杂度: ⭐⭐⭐⭐⭐ 高 | 维护成本: 中等

版本发布自动化

语义化

基于语义化版本的自动发布,包含 Changelog 生成和多平台发布

语义化版本:SemVer 规范自动版本管理

Changelog:基于 Conventional Commits 生成

多平台发布:NPM、PyPI、Docker Hub

Semantic ReleaseConventionalMulti-platform

复杂度: ⭐⭐⭐ 中等 | 维护成本: 极低

监控与通知

实时监控集成

实时

集成 DataDog、New Relic、Grafana 等监控平台,实时掌握应用状态

APM 监控:应用性能指标收集和分析

日志聚合:ELK、Fluentd 日志处理

告警配置:阈值监控和异常检测

DataDogNew RelicGrafana

复杂度: ⭐⭐⭐ 中等 | 维护成本:

团队协作通知

协作

Slack、Teams、钉钉等团队协作工具的智能通知和状态同步

状态通知:构建、测试、部署状态推送

智能摘要:失败原因分析和修复建议

交互控制:通过消息触发操作和审批

SlackTeams钉钉

复杂度: ⭐⭐ 简单 | 维护成本: 极低

集成指南

快速开始

将 Actions 配方集成到您的 Claude Code 工作流中非常简单:

💡 建议先从简单的代码质量检查配方开始,逐步扩展到完整的 CI/CD 流水线。

步骤 1:选择配方

# 在项目根目录创建 Actions 工作流目录
mkdir -p .github/workflows
 
# 选择适合的配方模板
cp actions-recipes/code-quality.yml .github/workflows/

步骤 2:配置环境变量

# 在 GitHub 仓库设置中配置必要的 Secrets
env:
  NODE_VERSION: '18'
  CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
  SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}

步骤 3:自定义配置

# 根据项目需求调整触发条件和执行步骤
on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

高级集成

对于复杂项目,可以组合多个配方:

# 完整的 CI/CD 流水线示例
name: Complete CI/CD Pipeline
 
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
 
jobs:
  code-quality:
    uses: ./.github/workflows/code-quality.yml
    
  security-scan:
    uses: ./.github/workflows/security-scan.yml
    needs: code-quality
    
  test-matrix:
    uses: ./.github/workflows/test-matrix.yml
    needs: code-quality
    
  deploy:
    if: github.ref == 'refs/heads/main'
    uses: ./.github/workflows/deploy.yml
    needs: [security-scan, test-matrix]
    secrets: inherit

自定义配方开发

配方开发规范

创建自定义 Actions 配方时,请遵循以下规范:

目录结构

.github/
├── workflows/
│   ├── ci.yml           # 主 CI 流水线
│   ├── security.yml     # 安全扫描
│   └── deploy.yml       # 部署流水线
└── actions/             # 自定义 Actions
    ├── setup-env/       # 环境准备
    └── notify/          # 通知集成

配方模板

name: Custom Recipe Template
 
on:
  workflow_call:
    inputs:
      environment:
        required: true
        type: string
    secrets:
      api-token:
        required: true
 
jobs:
  custom-job:
    runs-on: ubuntu-latest
    environment: ${{ inputs.environment }}
    
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4
        
      - name: Setup Environment
        uses: ./.github/actions/setup-env
        with:
          node-version: '18'
          
      - name: Run Custom Logic
        run: |
          echo "执行自定义逻辑"
          
      - name: Notify Results
        uses: ./.github/actions/notify
        if: always()
        with:
          status: ${{ job.status }}
          webhook: ${{ secrets.api-token }}

最佳实践

安全性

  • 使用 GitHub Secrets 管理敏感信息
  • 限制 Actions 权限到最小必要范围
  • 定期更新依赖的 Actions 版本
  • 启用依赖审查和漏洞扫描

性能优化

  • 合理使用缓存机制
  • 并行执行独立的 jobs
  • 避免不必要的步骤执行
  • 优化 Docker 镜像构建

可维护性

  • 使用可重用的工作流
  • 添加详细的注释和文档
  • 实施版本管理策略
  • 定期重构和优化

企业级 Actions

大型项目集成

对于企业级大型项目,建议采用以下策略:

分层架构

# 基础层:环境准备和工具安装
foundation:
  - setup-node
  - setup-docker
  - setup-secrets
 
# 检查层:代码质量和安全扫描
validation:
  - lint-and-format
  - security-scan
  - dependency-audit
 
# 测试层:多维度测试覆盖
testing:
  - unit-tests
  - integration-tests
  - e2e-tests
  - performance-tests
 
# 构建层:多环境构建和打包
build:
  - build-artifacts
  - build-containers
  - build-documentation
 
# 部署层:多环境部署和验证
deployment:
  - deploy-staging
  - smoke-tests
  - deploy-production
  - post-deployment-tests

多环境管理

environments:
  development:
    - 快速反馈
    - 基础测试
    - 代码质量检查
    
  staging:
    - 完整测试套件
    - 安全扫描
    - 性能测试
    - 集成验证
    
  production:
    - 蓝绿部署
    - 健康检查
    - 监控集成
    - 回滚机制

CI/CD 最佳实践

流水线设计原则

  1. 快速反馈:优先执行快速失败的检查
  2. 并行执行:最大化利用 GitHub Actions 并发能力
  3. 增量构建:只构建和测试变更的部分
  4. 环境隔离:每个环境独立配置和部署
  5. 监控集成:全程监控和告警

质量门禁

quality-gates:
  code-coverage:
    minimum: 80%
    trend: "not-decreasing"
    
  security-scan:
    vulnerabilities: "none"
    license-compliance: "required"
    
  performance:
    response-time: "< 200ms"
    memory-usage: "< 512MB"
    
  documentation:
    api-docs: "up-to-date"
    readme: "comprehensive"

完整工作流配置示例

全栈 Web 应用 CI/CD

name: Full-Stack Web Application CI/CD
 
on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]
  release:
    types: [published]
 
env:
  NODE_VERSION: '18'
  PYTHON_VERSION: '3.11'
  REGISTRY: ghcr.io
  IMAGE_NAME: ${{ github.repository }}
 
jobs:
  # 代码质量检查
  code-quality:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: ${{ env.NODE_VERSION }}
          cache: 'npm'
          
      - name: Install Dependencies
        run: npm ci
        
      - name: Run ESLint
        run: npm run lint
        
      - name: Run Prettier Check
        run: npm run format:check
        
      - name: TypeScript Check
        run: npm run type-check
        
      - name: Upload ESLint Results
        uses: github/super-linter@v5
        env:
          DEFAULT_BRANCH: main
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 
  # 安全扫描
  security-scan:
    runs-on: ubuntu-latest
    needs: code-quality
    steps:
      - uses: actions/checkout@v4
        
      - name: Run Snyk Security Scan
        uses: snyk/actions/node@master
        env:
          SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
        with:
          args: --severity-threshold=high
          
      - name: Run GitLeaks
        uses: zricethezav/gitleaks-action@master
        
      - name: CodeQL Analysis
        uses: github/codeql-action/analyze@v3
        with:
          languages: javascript,typescript
 
  # 多环境测试
  test-matrix:
    runs-on: ${{ matrix.os }}
    needs: code-quality
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        node-version: [16, 18, 20]
    steps:
      - uses: actions/checkout@v4
        
      - name: Setup Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
          cache: 'npm'
          
      - name: Install Dependencies
        run: npm ci
        
      - name: Run Unit Tests
        run: npm test
        
      - name: Run Integration Tests
        run: npm run test:integration
        
      - name: Upload Coverage
        uses: codecov/codecov-action@v3
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
 
  # E2E 测试
  e2e-tests:
    runs-on: ubuntu-latest
    needs: test-matrix
    steps:
      - uses: actions/checkout@v4
        
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: ${{ env.NODE_VERSION }}
          cache: 'npm'
          
      - name: Install Dependencies
        run: npm ci
        
      - name: Install Playwright
        run: npx playwright install --with-deps
        
      - name: Start Application
        run: |
          npm run build
          npm start &
          sleep 10
          
      - name: Run E2E Tests
        run: npx playwright test
        
      - name: Upload E2E Results
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: playwright-report
          path: playwright-report/
 
  # 构建 Docker 镜像
  build-container:
    runs-on: ubuntu-latest
    needs: [security-scan, e2e-tests]
    permissions:
      contents: read
      packages: write
    steps:
      - uses: actions/checkout@v4
        
      - name: Setup Docker Buildx
        uses: docker/setup-buildx-action@v3
        
      - name: Login to Container Registry
        uses: docker/login-action@v3
        with:
          registry: ${{ env.REGISTRY }}
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
          
      - name: Extract Metadata
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
          tags: |
            type=ref,event=branch
            type=ref,event=pr
            type=semver,pattern={{version}}
            type=sha
            
      - name: Build and Push
        uses: docker/build-push-action@v5
        with:
          context: .
          platforms: linux/amd64,linux/arm64
          push: true
          tags: ${{ steps.meta.outputs.tags }}
          labels: ${{ steps.meta.outputs.labels }}
          cache-from: type=gha
          cache-to: type=gha,mode=max
 
  # 部署到 Staging
  deploy-staging:
    runs-on: ubuntu-latest
    needs: build-container
    if: github.ref == 'refs/heads/develop'
    environment: staging
    steps:
      - name: Deploy to Staging
        uses: azure/webapps-deploy@v2
        with:
          app-name: 'my-app-staging'
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE_STAGING }}
          images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}
          
      - name: Run Smoke Tests
        run: |
          curl -f https://my-app-staging.azurewebsites.net/health || exit 1
          
      - name: Notify Slack
        uses: 8398a7/action-slack@v3
        with:
          status: custom
          custom_payload: |
            {
              text: "Staging deployment completed for ${{ github.repository }}",
              attachments: [{
                color: 'good',
                fields: [{
                  title: 'Environment',
                  value: 'Staging',
                  short: true
                }, {
                  title: 'Version',
                  value: '${{ github.sha }}',
                  short: true
                }]
              }]
            }
        env:
          SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}
 
  # 部署到 Production
  deploy-production:
    runs-on: ubuntu-latest
    needs: build-container
    if: github.ref == 'refs/heads/main'
    environment: production
    steps:
      - name: Deploy to Production
        uses: azure/webapps-deploy@v2
        with:
          app-name: 'my-app-production'
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE_PRODUCTION }}
          images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}
          
      - name: Health Check
        run: |
          for i in {1..5}; do
            if curl -f https://my-app.com/health; then
              echo "Health check passed"
              exit 0
            fi
            echo "Health check failed, retrying..."
            sleep 30
          done
          exit 1
          
      - name: Update Monitoring
        run: |
          curl -X POST "https://api.datadog.com/api/v1/events" \
            -H "Content-Type: application/json" \
            -H "DD-API-KEY: ${{ secrets.DATADOG_API_KEY }}" \
            -d '{
              "title": "Production Deployment",
              "text": "Successfully deployed version ${{ github.sha }} to production",
              "tags": ["deployment", "production", "success"]
            }'

🎉 这个完整的工作流配置示例展示了从代码质量检查到生产部署的全流程自动化,可以作为企业级项目的参考模板。

相关资源

官方文档

Claude Code 相关

社区资源

通过这些 Actions 配方,您可以构建出专业级的 CI/CD 流水线,显著提升开发效率和代码质量。每个配方都经过实际项目验证,可以直接应用到您的项目中。

关于我