# auto-deploy-ui **Repository Path**: chen-binfa/auto-deploy-ui ## Basic Information - **Project Name**: auto-deploy-ui - **Description**: 基于node.js+Express的自动部署工具(UI版) - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-10-10 - **Last Updated**: 2022-12-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# 基于node.js+Express的自动部署工具(UI版):Auto-Deploy 【本工具的目的是使用node.js实现Jenkins的核心功能】 对于前端小伙伴而言,安装和配置Jenkins需要比较大的学习成本,但更新完前端或后端项目后,能不能自动就部署好了呢,现在它来了! 自动化部署的常用功能: - push代码后,通过WebHook调用本工具 - 自动获取最新源码 - 自动安装相应依赖包 - 自动运行build命令 - 自动重启web服务 ## 背景 在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试; 或者前后端分离后,经常会修改接口,然后重新部署; 这些情况都会涉及到频繁的打包部署; 手动打包常规步骤: - 1.提交代码 - 2.问一下同组小伙伴有没有要提交的代码 - 3.拉取代码并打包(或者build) - 4.上传到Linux服务器 - 5.查看当前程序是否在运行 - 6.关闭当前程序 - 7.启动新的程序包 - 8.观察日志看是否启动成功 - 9.如果有同事说,自己还有代码没有提交......再次重复1到8的步骤!!!!!(一上午没了) ## 与Jenkins对比 ### 优点: | 序号 | Jenkins | Auto-Deploy | |------|--------------------|---------------------| | 1 | 功能强大、无所不能 | 简洁小巧 | | 2 | 插件多 | 对系统要求极低 | | 3 | 分布式 | 资源占用小 | | 4 | 系统健壮 | 安装简单 | | 5 | 使用人多 | 上手容易,0学习成本 | | 6 | 资料多 | 二次开发容易 | ### 缺点: | 序号 | Jenkins | Auto-Deploy | |------|--------------------|------------------------------------| | 1 | 安装复杂 | 只有核心功能,有些复杂操作无法实现 | | 2 | 对操作系统要求高 | 不支持分布式 | | 3 | 系统庞大,配置复杂 | 不支持插件 | | 4 | 占用硬件资源高 | 需要Node.js的运行环境 | | 5 | 学习成本高 | 稳定性有待时间验证 | | 6 | 需要java环境 | 有些错误可能不好排查 | | 7 | 二次开发难度大 | | ## 功能配置预览 ### 登录
## 数据库
默认数据库为根目录的 auto-deploy-db.json 文件
内容如下:
``` javascript
[
{
id:"auto_deploy",//唯一标记
password: "auto_deploy", //在git中配置的密码
waitExecComplete: true, //多条exec中的命令是否同步执行
path: "/data/web/auto_deploy", //网站目录
deployKeyword: "deploy", //如果commit等于此关键词,则开始自动部署,否则此次提交跳过
exec: [ //执行的命令列表
"cd {path} && git fetch --all && git reset --hard && git pull",
"cd {path} && npm i",
"pm2 restart web_auto_deploy",
],
deployKeyword2: "deploy", //如果commit等于此关键词,则开始自动部署,否则此次提交跳过
exec2: [//执行的命令列表2
"cd {path} && git fetch --all && git reset --hard && git pull"
]
},
...
]
```
## webhook配置
在git上配置webhook地址如下,如果你的网站域名是deploy.xiaoshuicao.com,那么webhook请求地址如下
giteee:
## 使用方法
``` javascript
git clone https://gitee.com/chen-binfa/auto-deploy
cd auto-deploy
npm i
npm start
```
默认的运行端口是453,可以在app.js文件中修改
管理登录地址:
http://localhost:453/login.html
默认登录账号:
``` javascript
fage //账号
fage2022 //密码
```