PACKAGE-CI是一款完全由JavaScript语言编写的自动化运维工具,主要面向各种规模的互联网软件(前端)开发团队,致力于打造前端项目DevOps一体化解决方案,相信开源的力量。
- GitHub开源地址:https://github.com/yangrds/package-ci
- 博客主页https://js-vue.com(最新文档将在这里更新)
- 电子邮件地址yangrd@tom.com(可以随时给我发电子邮件)
- 如果您在使用过程中有任何疑问,可以加入群聊提问。
- 演示地址:https://package.js-vue.com
- 演示账号:xiaohuajia
- 演示密码:123
软件名 | 描述 | 开源协议 |
---|---|---|
package-ci-scheduler | 集群调度器 | MIT |
package-ci-cluster | 集群节点应用 | MIT |
package-ci-view | 前端 | MIT |
- 低内存占用,完全抛弃docker容器,由node衍生进程(process)替代容器。
- 轻量化应用,由node衍生的进程内仅有一个koa2应用,方便二次开发增减功能。
- 完整工作流,项目从开发到功能测试再到UAT交付验收,直至最后项目上线正式环境,都有严格的工作阶段。
- 大型集群节点,集群调度器[scheduler]可管理无数台节点服务器[cluster]。
- 项目迁移,在调度器平台编辑项目所属节点,即可将项目从A服务器迁移至B服务器。
- 指令集合,每个项目都有专属的指令集合,可以添加各种基于npm/yarn的指令,对项目进行各种常规操作(调度器源码已经屏蔽npm/yarn之外的任何指令)
- GIT管理,可以对项目进行GIT管理(只读性操作)比如【指定分支克隆】【检出指定分支】【删除指定分支(本地)】【切换分支】【Commit记录】等等。
- 团队成员,可以在平台内注册团队成员,每个成员可以和多个项目进行不同的身份绑定,使用不同权限对项目进行不同的日常操作。
package-ci-scheduler
- 调度器首次启动会在系统用户目录下创建package-ci-lib文件夹,会创建如下文件/目录,自动创建
- rsa_public_key_1024.txt(项目公钥)自动创建
- rsa_private_key_1024.txt(项目私钥)自动创建
- static(资源目录)调度器创建项目时从git克隆的文件全部放在这里,自动创建
package-ci-cluster
- 节点应用首次启动会在系统用户目录下创建package-ci-static文件夹,会创建如下文件/目录,自动创建
- server.js(服务文件)用koajs编写由ncc编译,每次启动都会扫描如果缺失则会自动创建。
- rsa_private_key_1024.txt 调度器里的私钥文件,调度器启动后会自动创建,然后复制到节点应用的目录内,这样调度器才能和节点通信
- DEV(目录)该节点内所有项目的DEV环境静态资源全部存储在这里,自动创建
- TEST(目录)该节点内所有项目的TEST环境静态资源全部存储在这里,自动创建
- UAT(目录)该节点内所有项目的UAT环境静态资源全部存储在这里,自动创建
- PROD(目录)该节点内所有项目的生产环境静态资源全部存储在这里,自动创建
/*
【dev】 热启动项目
【build】 将项目打包至dist目录
【win/lux/mac】 是配置了pkg封包,可以把dist目录内build好的项目,封装为三个平台的可执行应用。
*/
"scripts": {
"prebuild": "rimraf dist",
"build": "nest build",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
"start": "nest start",
"dev": "nest start --watch",
"start:dev": "nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"win": "pkg . -t node14-win-x64",
"lux": "pkg . -t node14-linux-x64",
"mac": "pkg . -t node14-macos-x64"
}
环境 | 权限 | 说明 |
---|---|---|
DEV环境 | 开发成员 | 该环境是给开发成员员线上调试专用,项目所绑定的开发成员可随意部署(无限制) |
TEST环境 | 测试成员(QA) | 该环境是给测试成员进行功能测试专用,只允许项目绑定的测试人员部署和操作 |
UAT环境 | 项目经理(PM) | 该环境是给开发成员员线上调试专用,项目所绑定的开发成员可随意部署(无限制) |
PROD环境 | 项目经理(PM)测试成员(QA) | 项目正式上线,必须PM和QA全部确认后,由开发成员部署至生产环境(PROD) |