流程
- copy 代码库 到jenkins 工作区。
jenkins 需要配置全局的gitsvn等代码库的版本工具
- 下载项目依赖。
jenkins 需要配置全局的node环境。运行 npm install --save-dev.
- 运行 项目的打包脚本。
需要知道项目的 脚本运行入口。推荐都配置成 默认的gulp。(webpack打包的项目 可以 增加一个 gulpfile 引导文件!) 推荐 统一配置一下 package.json 中的 scripts { "gulp": "gulp" } 。否则jenkins 需要配置全局的 gulp 环境运行打包脚本。
- 推送打包后的文件(build)到指定的的服务器
这里可以打包后文件名可以自定义,只需要在对应的jenkins任务中正确的推送相应文件夹到服务器指定的静态部署文件夹既可。推送 项目 文件中的mock 文件 到 服务器 指定的 mock 服务区(特例:我们的开发环境不涉及到后台,都是自己在维护数据,所以需要推送相关的mock服务。相当于自己维护的node后台服务!)。
- 重启前端静态部署服务器和 mock 后台服务器。
重启之后:查看自己手机就可以了。
配置
安装(msi或者war包安装都可以)
启动命令: java -jar jenkins.war --httpPort=1314管理员密码文件:C:Userswangxungang.jenkinssecretsinitialAdminPassword
管理用户
系统管理=> 管理用户中设置(不建议放开注册功能!)
邮件配置 (可以在部署失败等情况下 邮件通知相关人员)
全局工具配置
- git
项目配置
- 参数化
- git 代码库 (配合上一步的参数化)
- 添加 node 环境
- 构建:shell脚本:
## path echo $PATHpwd## versionnode -vnpm -v## packagenpm install --save-dev## build (可以配合参数化)npm run ${dev}
- 构建[win 批处理 远程服务器通过 ssh]copy (部署 打包后静态文件)
@echo off = /s :复制非空的目录和子目录 /y :禁止提示您确认要覆盖现存的目标文件 /i : 目标目录不存在时创建一个新目录 /h: 隐藏文件和系统文件xcopy ".\build" "C:\node_web\mock\node_koa\cup\%JOB_NAME%" /y/s/iecho 如果 使用了其他的生成目录,请相应调整一下 JOB_NAME :%JOB_NAME%echo 迁移mock服务 : 对应文件夹存在时!if exist ".\src\service\server" ( xcopy ".\src\service\server" "C:\node_web\mock\node_koa\routes\%JOB_NAME%" /y/s/i echo 重启服务 cd c:\\node_web\\mock\\node_koa pm2 start app.js -f) else ( echo 没有对应的 mock服务!)
@echo off= /s :复制非空的目录和子目录 /y :禁止提示您确认要覆盖现存的目标文件 /i : 目标目录不存在时创建一个新目录 /h: 隐藏文件和系统文件if "%update%"=="entry" ( xcopy ".\build" "C:\node_web\mock\node_koa\cup\entry" /y/s/i)if "%update%"=="server" ( xcopy ".\node_koa\config" "C:\node_web\mock\node_koa\config" /y/s/i xcopy ".\node_koa\app.js" "C:\node_web\mock\node_koa" /y/s/i echo 重启服务 cd c:\\node_web\\mock\\node_koa pm2 start app.js -f)if "%update%"=="whole" ( echo base modules files xcopy ".\node_modules" "C:\node_web\mock\node_modules" /y/s/i/h echo entry files xcopy ".\build" "C:\node_web\mock\node_koa\cup\entry" /y/s/i echo service files xcopy ".\node_koa\config" "C:\node_web\mock\node_koa\config" /y/s/i xcopy ".\node_koa\app.js" "C:\node_web\mock\node_koa" /y/s/i echo 重启服务 cd c:\\node_web\\mock\\node_koa pm2 start app.js -f)
- 邮件发送