mcpField
B
building-cicd-pipelines

building-cicd-pipelines

github.com/jeremylongshore云与 DevOps2.9k46 次安装2 天前更新
代码仓库

关于 building-cicd-pipelines

面向需要自动化构建与部署的开发者,生成 GitHub Actions、GitLab CI、Jenkins、CircleCI 和 Azure DevOps 的多阶段流水线配置,并涵盖测试、安全扫描、部署门禁与回滚。

主要功能

  1. 01生成多平台 CI/CD 配置
  2. 02定义测试、构建和部署阶段
  3. 03添加依赖缓存与矩阵构建
  4. 04配置密钥引用与生产审批
  5. 05校验流水线语法

适用场景

  1. 01为应用创建 CI/CD 流水线
  2. 02为多个运行环境配置矩阵测试
  3. 03为生产部署设置审批和健康检查回滚

安装

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

$npx skills add https://github.com/jeremylongshore/tons-of-skills-marketplace --skill building-cicd-pipelines

安装后在 Claude Code 中输入/building-cicd-pipelines确认已加载。

包含的文件

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

assets/
README.md
references/
README.md
scripts/
README.md

详细介绍

构建 CI/CD 流水线

当前状态

!ls .github/workflows/*.yml .gitlab-ci.yml Jenkinsfile .circleci/config.yml 2>/dev/null || echo 'No CI/CD config found'

概述

为 GitHub Actions、GitLab CI、Jenkins、CircleCI 和 Azure DevOps 生成 CI/CD 流水线配置。创建多阶段工作流,涵盖 lint、测试、构建容器镜像、安全扫描,以及部署到预发布环境/生产环境,并包含适当的门禁和回滚机制。

前提条件

  • 托管在受支持平台(GitHub、GitLab、Bitbucket、Azure DevOps)上的 Git 仓库
  • 容器运行时(Docker)(如果要构建镜像)
  • 已将目标部署环境的凭据配置为流水线机密
  • 可在无头模式下运行的测试套件(npm test、pytest、go test 等)
  • 了解分支策略(主干开发、GitFlow 或环境分支)

说明

  1. 扫描项目中现有的 CI/CD 配置文件(.github/workflows/、.gitlab-ci.yml、Jenkinsfile、.circleci/config.yml)
  2. 确定应用技术栈:语言、框架、测试运行器、包管理器和部署目标
  3. 定义流水线阶段:lint -> test -> build -> security-scan -> deploy-staging -> integration-test -> deploy-production
  4. 生成流水线配置文件,并设置适当的触发条件(推送到 main、PR 事件、标签)
  5. 为依赖项(node_modules、.pip-cache、Go 模块)添加缓存,以缩短构建时间
  6. 在适当情况下,为多个语言版本或操作系统目标配置矩阵构建
  7. 添加部署凭据、容器注册表令牌和 API 密钥的机密引用(切勿硬编码)
  8. 实施部署门禁:生产环境需要手动审批,健康检查失败时自动回滚
  9. 添加状态徽章和构建结果通知(Slack、电子邮件)
  10. 使用平台专用工具(actionlint、gitlab-ci-lint)验证流水线语法

输出

  • 流水线配置文件(.github/workflows/*.yml、.gitlab-ci.yml、Jenkinsfile)
  • 用于容器构建的 Dockerfile(多阶段、最小化基础镜像)
  • 流水线引用的部署脚本或 Kubernetes 清单
  • 用于预发布环境和生产环境的特定环境变量文件

错误处理

错误原因解决方案
Pipeline triggered but no jobs run触发条件(路径、分支)不匹配检查 on: / only: / rules: 过滤条件,并确认分支名称
Docker build failed: layer cache miss缓存键已更改或缓存存储已过期使用基于内容的缓存键(hashFiles('**/package-lock.json')),并检查缓存后端
Secret not found机密名称不匹配,或未在流水线设置中配置检查仓库/项目设置中的机密名称是否完全匹配(区分大小写)
Deploy failed: unauthorized部署凭据已过期或不正确轮换凭据、更新流水线机密,并检查 IAM 角色/服务账户权限
Tests pass locally but fail in CI环境差异(操作系统、node 版本、时区)在流水线配置中固定运行时版本;使用 matrix 跨环境测试

示例

  • “为 Node.js 应用创建 GitHub Actions 工作流:使用 ESLint 进行 lint,使用 Jest 进行测试,构建 Docker 镜像,推送到 ECR,并在 PR 合并后部署到 EKS 预发布环境。”
  • “生成 GitLab CI 流水线,包含并行测试任务、SAST 扫描和手动生产环境部署门禁。”
  • “构建 Jenkins 流水线,在 Docker Agent 中运行 Python 测试,将覆盖率报告发布到 SonarQube,并通过 Terraform 部署。”

资源

评论

支持 Markdown