返回顶部
c

cicd-pipeline-generatorCI/CD流水线生成器

This skill should be used when creating or configuring CI/CD pipeline files for automated testing, building, and deployment. Use this for generating GitHub Actions workflows, GitLab CI configs, CircleCI configs, or other CI/CD platform configurations. Ideal for setting up automated pipelines for Node.js/Next.js applications, including linting, testing, building, and deploying to platforms like Vercel, Netlify, or AWS.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.1.0
安全检测
已通过
2,043
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

cicd-pipeline-generator

CI/CD 管道生成器

概述

为各种平台(GitHub Actions、GitLab CI、CircleCI、Jenkins)生成可用于生产环境的CI/CD管道配置文件。此技能提供模板和指导,用于设置自动化工作流,处理现代Web应用程序(特别是Node.js/Next.js项目)的代码检查、测试、构建和部署。

核心能力

1. 平台选择

根据项目需求选择合适的CI/CD平台:

  • - GitHub Actions:最适合托管在GitHub上的项目,具有原生集成
  • GitLab CI/CD:适用于具有复杂管道需求的GitLab仓库
  • CircleCI:针对Docker工作流和快速构建时间进行了优化
  • Jenkins:适用于自托管、高度可定制的环境

有关详细的平台比较、优缺点和用例建议,请参阅 references/platform-comparison.md。

2. 管道配置生成

按照以下原则生成管道配置:

管道阶段

使用以下标准阶段构建管道:

  1. 1. 安装依赖
- 从仓库检出代码 - 设置运行时环境(Node.js版本) - 恢复缓存的依赖 - 使用 npm ci 安装依赖 - 缓存依赖以供将来运行
  1. 2. 代码检查
- 运行ESLint进行代码质量检查 - 运行TypeScript类型检查 - 在代码检查错误时快速失败
  1. 3. 测试
- 执行单元测试 - 执行集成测试 - 生成代码覆盖率报告 - 将覆盖率上传到报告服务(Codecov、Coveralls)
  1. 4. 构建
- 创建生产构建 - 验证构建成功 - 存储构建产物
  1. 5. 部署
- 部署到预发布环境(develop分支) - 部署到生产环境(main分支) - 运行部署后冒烟测试

缓存策略

实施有效的缓存以加速构建:

yaml

基于package-lock.json缓存node_modules


cache:
key: ${{ hashFiles(package-lock.json) }}
paths:
- node_modules/
- .npm/

环境变量

配置必要的环境变量:

  • - NODE_ENV:构建时设置为 production
  • 平台特定令牌:存储为密钥
  • 构建时变量:传递给构建过程

3. 模板使用

使用 assets/ 目录中提供的模板:

GitHub Actions模板(assets/github-actions-nodejs.yml):

  • - 包含代码检查、测试、构建、部署的多作业工作流
  • 多个Node.js版本的矩阵构建(可选)
  • Vercel部署集成
  • 产物上传
  • 代码覆盖率报告

GitLab CI模板(assets/gitlab-ci-nodejs.yml):

  • - 多阶段管道
  • 依赖缓存
  • 手动生产部署
  • 自动预发布部署
  • 覆盖率报告

使用模板:

  1. 1. 复制相应的模板文件
  2. 放置在正确的位置:

- GitHub Actions:.github/workflows/ci.yml
- GitLab CI:.gitlab-ci.yml
  1. 3. 自定义部署目标、环境变量和分支名称
  2. 在平台设置中添加所需的密钥

4. 部署配置

Vercel部署

对于GitHub Actions:
yaml

  • - uses: amondnet/vercel-action@v25

with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCELORGID }}
vercel-project-id: ${{ secrets.VERCELPROJECTID }}
vercel-args: --prod

所需密钥

  • - VERCELTOKEN:从Vercel账户设置获取
  • VERCELORGID:从Vercel项目设置获取
  • VERCELPROJECT_ID:从Vercel项目设置获取

Netlify部署

yaml

  • - run: |

npm install -g netlify-cli
netlify deploy --prod --dir=.next
env:
NETLIFYAUTHTOKEN: ${{ secrets.NETLIFYAUTHTOKEN }}
NETLIFYSITEID: ${{ secrets.NETLIFYSITEID }}

AWS S3 + CloudFront

yaml

  • - uses: aws-actions/configure-aws-credentials@v4

with:
aws-access-key-id: ${{ secrets.AWSACCESSKEY_ID }}
aws-secret-access-key: ${{ secrets.AWSSECRETACCESS_KEY }}
aws-region: us-east-1

  • - run: |
aws s3 sync .next/static s3://${{ secrets.S3_BUCKET }}/static aws cloudfront create-invalidation --distribution-id ${{ secrets.CFDISTID }} --paths /*

5. 测试集成

配置带有适当报告的测试执行:

Jest配置
yaml

  • - name: Run tests with coverage

run: npm test -- --coverage --coverageReporters=text --coverageReporters=lcov

  • - name: Upload coverage
uses: codecov/codecov-action@v4 with: files: ./coverage/lcov.info flags: unittests

快速失败策略
yaml

先运行快速测试


jobs:
lint: # 约30秒内失败
test: # 约2分钟内失败
build: # 约5分钟内失败
needs: [lint, test]
deploy:
needs: [build]

6. 基于分支的工作流

为每个分支实现不同的行为:

功能分支/PR

  • - 仅运行代码检查+测试
  • 不部署
  • 在PR评论中添加测试结果

Develop分支

  • - 运行代码检查+测试+构建
  • 部署到预发布环境
  • 自动部署

Main分支

  • - 运行代码检查+测试+构建
  • 部署到生产环境
  • 手动审批(可选)
  • 创建发布标签

示例
yaml
deploy_staging:
if: github.ref == refs/heads/develop
# 部署到预发布环境

deploy_production:
if: github.ref == refs/heads/main
environment: production # 需要手动审批
# 部署到生产环境

工作流决策树

按照以下决策树生成适当的管道:

  1. 1. 哪个平台?
- GitHub → 使用 assets/github-actions-nodejs.yml - GitLab → 使用 assets/gitlab-ci-nodejs.yml - CircleCI/Jenkins → 适配GitHub Actions模板 - 不确定 → 查阅 references/platform-comparison.md
  1. 2. 需要哪些阶段?
- 始终包含:代码检查、测试、构建 - 可选:安全扫描、端到端测试、性能测试 - 如果从CI部署,添加部署阶段
  1. 3. 哪个部署平台?
- Vercel → 使用Vercel部署示例 - Netlify → 使用Netlify CLI方法 - AWS → 使用AWS Actions/CLI - 自定义 → 实现自定义部署脚本
  1. 4. 什么触发条件?
- 推送到main/develop时 - 创建拉取请求时 - 创建标签时 - 手动工作流调度
  1. 5. 需要哪些环境变量?
- 平台令牌(Vercel、Netlify、AWS) - 外部服务的API密钥 - 构建时环境变量 - 功能标志

最佳实践

安全性

  • - 将所有密钥存储在平台密钥管理中(切勿在代码中)
  • 使用最小权限令牌(尽可能只读)
  • 定期轮换密钥
  • 审计密钥访问权限
  • 切勿记录密钥(使用 * 掩码)

性能

  • - 积极缓存依赖
  • 并行化独立作业
  • 使用矩阵构建进行多版本测试
  • 快速失败:在慢速检查之前运行快速检查
  • 优化Docker层缓存

可靠性

  • - 锁定精确的Node.js版本(18.x 而不仅仅是 18)
  • 提交锁定文件(package-lock.json)
  • 为不稳定的外部服务添加重试逻辑
  • 设置合理的超时时间(最多10-15分钟)
  • 对非关键步骤使用 continue-on-error

可维护性

  • - 添加注释解释复杂逻辑
  • 使用可重用工作流/模板
  • 保持配置DRY(不要重复自己)
  • 对所有管道更改进行版本控制
  • 在README中记录所需的密钥

常见模式

多环境部署

yaml deploy_staging: environment: staging if: github.ref == refs/heads/develop

deploy_production:
environment: production
if:

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 cicd-pipeline-generator-1776376482 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 cicd-pipeline-generator-1776376482 技能

通过命令行安装

skillhub install cicd-pipeline-generator-1776376482

下载

⬇ 下载 cicd-pipeline-generator v0.1.0(免费)

文件大小: 10.08 KB | 发布时间: 2026-4-17 16:13

v0.1.0 最新 2026-4-17 16:13
Initial release of cicd-pipeline-generator skill.

- Generates production-ready CI/CD pipeline configuration files for GitHub Actions, GitLab CI, CircleCI, and Jenkins.
- Provides templates and best practices for Node.js/Next.js pipeline stages: lint, test, build, and deploy.
- Includes deployment examples for Vercel, Netlify, and AWS S3/CloudFront.
- Supports branch-based workflows for feature, develop, and main branch automation.
- Emphasizes caching, environment variable management, and secret security.
- Offers a workflow decision tree and platform comparison guidance.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部