概念性的东西就不谈了,先说说为什么要用NodeJS实现。
why
简单理解就是可以用的服务器装不上现成的Jenkins呗,不要问为什么服务器也不是我的,我也不知道(┓( ´∀` )┏)。
那么,我寻思我肯定不能自己手工打包登服务器复制粘贴啊。
what to do
理一理这个需求到底是个啥:
- 向gitlab提交代码->触发钩子,实际上就是向serverA发送打包请求
- serverA 从gitlab拉取并打包->向serverB发送部署请求
- serverB 从serverA下载打包好的文件压缩包->解压->清理文件->移动到相应文件夹->调用脚本启动服务
所以要做的事件就很明白了,两个部分
serverA:https://github.com/ShoneSingLone/mindmap/blob/master/project/cicdserver/index.js
serverB:https://github.com/ShoneSingLone/mindmap/blob/master/project/cdserver/index.js
职责不一样,我分开了,考虑到serverA的系统环境可能跟serverB不一样。
还行吧,再用pm2搞个自启动,应该不用自己手工部署了
spawn执行脚本错误,我找了一下午的问题,最后是LF CRLF