来自 registry 的实时数据
通过分析你已有的代码库,生成 GitHub Actions CI/CD 流水线。
cistack 扫描项目、识别技术栈,并写入可用于生产的 GitHub Actions 工作流,覆盖 CI、部署、Docker 与发布。面向真实仓库而非演示:在生成 YAML 前会读取锁文件、框架信号、发布配置、monorepo 工作区、托管配置与 Git 分支元数据。
周下载量
2.4k
npm 近一周
快速安装
npx cistack安装
推荐
npx cistack始终拉取最新版本,无需全局安装。
cistack 支持 Node.js 16+;项目在 GitHub Actions 中持续针对 Node.js 18、20、22 验证。
运行预览
扫描典型项目后的 CLI 动画输出。
正在处理输出…
npx cistack
参考
为什么选择 cistack
- 自动识别语言、框架、测试工具、托管提供方与发布工具
- 在可用时使用仓库默认 Git 分支,而不是假定 main
- 支持 monorepo、按包的流水线,以及面向不同包管理器的命令
- 生成贴合生态的 Dependabot 配置;存在 bun.lock 时包含 Bun
- 将生成的工作流与已有文件智能合并,而非盲目覆盖
- 为 Vercel、Netlify、Firebase、GitHub Pages、AWS、Azure、Heroku、Render、Railway 等生成部署流水线
- 内置工作流审计与升级命令
- 通过 index.d.ts 支持类型化的 cistack.config.js
- 具备自动化回归测试,覆盖分支、发布、智能合并、monorepo 脚本与 CLI 冒烟测试
CLI 用法
会生成什么
支持的检测能力
FirebaseVercelNetlifyGitHub PagesAWSGCP App EngineAzureHerokuRenderRailwayDocker
支持的顶层配置键
- nodeVersion
- packageManager
- hosting
- frameworks
- testing
- branches
- workflowLayout
- cache
- monorepo
- release
- secrets
- outputDir
分支行为
- 若在配置中设置了 branches,cistack 将严格使用这些分支
- 否则在可用时从 Git 元数据读取仓库默认分支
- 若无法获取 Git 元数据,则按工作流类型回退到 main、master、develop 等安全默认值
配置
需要覆盖检测结果时,请创建 cistack.config.js。
示例
/** @type {import('cistack').Config} */
module.exports = {
nodeVersion: '20',
packageManager: 'pnpm',
branches: ['main', 'staging'],
workflowLayout: 'single',
hosting: ['Vercel'],
outputDir: '.github/workflows',
cache: {
npm: true,
cargo: true,
pip: true,
},
monorepo: {
perPackage: true,
},
release: {
tool: 'semantic-release',
},
};密钥
生成的部署与发布工作流会在文件顶部说明所需密钥。请在 GitHub:Settings → Secrets and variables → Actions 中添加。
在本地运行检查
npm testnpm run test:smokenode bin/ciflow.js audit --path .node bin/ciflow.js upgrade --path . --dry-run使用已发布的 npm 包时,可执行文件名为 cistack。在 cistack 源码仓库中,本地入口为 bin/ciflow.js。
开发与质量
项目包含针对历史上易出问题领域的回归测试:
- 配置覆盖处理
- 默认分支检测
- 部署分支选择
- Netlify 生产分支
- 智能合并行为
- monorepo 按包查找构建脚本
- 发布配置检测
- 发布工作流生成
- CLI dry-run 冒烟测试
MIT 许可证
从你已有的仓库生成 CI/CD 工作流。
© 2026 cistack。在适用范围内保留所有权利。