# 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 //密码 ```