mcpField
C
ci-cd-architecture

ci-cd-architecture

github.com/oakoss云与 DevOps20188 次安装10 周前更新
代码仓库

关于 ci-cd-architecture

ci-cd-architecture 是用于设计 CI/CD 流水线和选择部署平台的技能,重点涵盖 GitHub Actions 安全、Bun 构建优化,以及从 MVP 到企业规模的部署模式。

主要功能

  1. 01设计 CI/CD 流水线阶段
  2. 02强化 GitHub Actions 权限与凭据安全
  3. 03优化 Bun 构建和缓存
  4. 04按项目需求比较部署平台
  5. 05涵盖容器构建与镜像扫描

适用场景

  1. 01规划 GitHub Actions 工作流
  2. 02为产品选择部署目标
  3. 03用 OIDC 保护 CI 云访问
  4. 04规划容器构建和扫描阶段

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/oakoss/agent-skills --skill ci-cd-architecture

安装后在 Claude Code 中输入/ci-cd-architecture确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
container-builds.md
deployment-patterns.md
github-actions.md
monitoring.md
platform-selection.md

详细介绍

CI/CD 与部署

概述

涵盖 CI/CD 流水线设计、部署平台选择和生产基础设施。重点介绍采用强化安全措施(OIDC、权限范围控制、固定 Action 版本)的 GitHub Actions、Bun 优先的构建优化,以及从 MVP 到企业级的部署模式。

适用场景: 配置 GitHub Actions 工作流、选择部署目标、为云服务提供商配置 OIDC、优化 CI 性能、规划多环境流水线。

不适用场景: 应用级架构决策(使用特定框架的技能)、Kubernetes 集群管理(使用专用 IaC 工具)、云服务提供商控制台配置。

快速参考

需求解决方案
MVP 部署(< 1K 用户)Vercel、Netlify、Railway、Cloudflare Pages
成长期产品(1K-100K)AWS Amplify、Cloud Run、Fly.io、Render
企业级(100K+)AWS ECS/EKS、GKE、DigitalOcean App Platform
静态网站Vercel、Netlify、Cloudflare Pages
全栈 + 数据库Railway、Render、AWS Amplify
全球低延迟Cloudflare Workers、Vercel Edge、Fly.io
合规性(HIPAA、SOC 2)AWS、GCP、Azure
从 CI 进行云身份验证OIDC 角色(绝不使用长期密钥)
固定 Action 版本固定到提交 SHA,而非标签
Bun CI 缓存使用 lockfile 作为键的 ~/.bun/install/cache
流水线安全使用 StepSecurity Harden-Runner 控制出站流量
容器构建多阶段 Dockerfile:构建器阶段 + 运行时阶段
Docker 层缓存使用 --cache-from + actions/cache 缓存 buildx
多平台构建使用 docker buildx,目标平台为 linux/amd64,linux/arm64
镜像扫描在推送前于流水线中使用 Trivy 或 Snyk
推送到镜像仓库GHCR(ghcr.io)、ECR、Docker Hub
流水线阶段构建 → 测试 → 安全扫描 → 部署
DORA:部署频率按服务跟踪每天/每周的部署次数
DORA:前置时间从提交到生产环境的时间;目标 < 1 小时
DORA:变更失败率导致事故的部署百分比;目标 < 5%
DORA:MTTR平均恢复时间;目标 < 1 小时

常见错误

错误正确做法
将长期有效的 AWS/GCP/Azure 密钥存储为 GitHub secrets使用具有 id-token: write 权限的 OIDC 角色,实现零信任云身份验证
将 GitHub Actions 固定到标签而非提交 SHA将第三方操作固定到完整提交 SHA,以防止供应链攻击
在工作流中将 permissions 保持为默认(宽泛)设置在作业级别明确限定权限;默认设为 contents: read
在每次分支推送时运行完整 CI使用 on.pull_request 筛选条件和基于路径的触发器,避免浪费计算资源
在产品与市场契合前过度设计基础设施从托管平台(Vercel、Railway)入手;仅在需要时扩展到 AWS/GKE
使用过时的操作版本(v3 或更早版本)使用当前主版本:checkout@v6、cache@v5、configure-aws-credentials@v5
仅缓存 bun.lockb,未考虑 bun.lockBun 1.2+ 使用基于文本的 bun.lock;根据项目使用的锁文件格式计算哈希
跳过 PR 的预览部署每个 PR 都应获得一个预览 URL,以便在合并前进行测试

与其他技能的关系

如果有 github-actions 技能,请将详细的工作流编写、矩阵策略和复合操作交由它处理。本技能涵盖 CI/CD 架构和平台选择;github-actions 涵盖深入的工作流语法。 如果有 deployment-strategy 技能,请将部署模式选择(蓝绿、金丝雀、滚动)交由它处理。本技能涵盖平台选择和 CI 流水线机制。

委派

  • 审计现有 CI 工作流的安全性和权限:使用 Explore Agent 扫描工作流 YAML 文件,检查权限是否过宽、操作是否未固定版本,以及是否暴露了密钥
  • 设置多环境部署流水线:使用 Task Agent 创建 dev/staging/prod 工作流,并配置环境保护规则
  • 规划从托管平台迁移到容器化基础设施:使用 Plan Agent 评估当前部署、制定迁移步骤并选择目标架构

参考资料

评论

支持 Markdown