构建流程
- 构建服务器: 拉取指定分支代码
- 构建服务器: 安装依赖
- 构建服务器: 执行构建
- 构建服务器: 若是上线流程,则在 git 上建立 tag,供回滚使用
- 构建服务器:打包 node 服务代码,和静态资源代码
测试环境上线
- 构建服务器:执行构建
- jenkins:拉取打包好的静态资源和 node 服务代码
- jenkins: 静态资源部署到测试服务器
- jenkins: node 服务代码上传到测试服务器
- 测试服务器:启动服务(须要 root 权限来设置
host
)
沙箱环境上线
同测试环境上线流程node
线上环境上线
- 构建服务器: 执行构建
- jenkins:拉取打包好的静态资源和 node 服务代码
- jenkins:静态资源代码上传到线上
- jenkins:CDN 刷新
- jenkins:node 服务代码上传到线上
- 线上机器:启动服务
项目约定与构建参数
发布流程的使用方式
传入代码分支与目标机器,服务便可部署到指定机器git
项目约定
为了自动化程序可以顺利对项目进行构建,须要项目提供如下接口,接口命令能够为空,可是入口必须存在。npm
npm install
安装项目依赖,安装后的目录在项目根目录下的 node_modules
目录中,若是有其余依赖须要安装,须要在 postinstall
或 preinstall
中写明。安装阶段构建工具只调用 npm install
一条命令。后端
npm run build
对项目进行构建,如需对静态资源进行构建,一并在 build 命令中执行,若是存在静态资源,静态资源构建后的位置必须在项目文件夹内。浏览器
npm start
启动 node 服务,用于在目标机器上执行,请注意 npm start
命令中应当包含关闭正在运行的本服务和从新服务两步。服务器
host 文件
若是须要对线上机器设置 host,测试环境和沙箱环境分别在 config/hosttest、config/hostsandbox 中写明,格式即为 host 格式。工具
重要
不要依赖线上全局命令
除了 pm2 之外,线上不提供其余全局命令,若是须要此类命令,请在项目中自行依赖gitlab
规范 Pm2 的使用
建议使用 pm2 启动服务,服务必须有应用名,在中止服务时,禁止使用 pm2 kill
,由于这个命令同时会关掉同机器上的其余服务post
测试环境与沙箱环境的 host 设置
在某些 node 服务中,须要对环境的 host 进行设置,构建工具会读取项目中的 config/hosts.yaml 自动对 host 进行修改测试
Host
只配置在测试机上须要的 host, 如代理后端服务的 ip,不要配置如 cdn 地址等浏览器端的 host
build 和 start 命令
build 和 start 命令必须是能够正常退出的命令,watch 等模式,会阻塞构建发布流程的执行
构建参数
此处的参数用于在 jenkins 处填写 scm_project
填写项目在 gitlab.58corp.com 下的分组及名称,格式 “group/project” deploy_type
选择部署类型static_name
静态资源目录,支持子目录 online_machine
node 服务的线上资源地址,静态资源自动发布到对应目录下, 无需手动设置