背景
现在上线流程:
后端
- 叫上n个人
 - 拉代码(git checkout 。。。 )
 - maven -> 指定环境 -> 打包(mvn clean package -Pdev)
 - 传包(ssh ………….)
 - ssh 到服务器上。。。。。
 - 执行一堆命令(cd。。。stop。。。mv。。。start。。。)
 
前端
- npm build 。。。。。。。。。。。。。。。。。
 - 。。。。。。。。
 - 。。。。。。。。
    
问题
- 出问题了(谁上线了?包上错了?环境错了?咋回事?上成什么代码了?)
 - 。。。。
        
CI/CD(持续集成)
 
 

- 简单说就是把上边的流程交给机器解决。
 - 现在我们只用到了通知、拉代码、打包、重启、通知
 - 未来:+ 构建镜像、滚动发布、金丝雀发布、脚本化测试。。。
    
需求组实现
上线流程
 - 我们在00机器上部署了一套jenkins
 - 每个项目作为一个工程,每个环境在一个tab页下。
 - 上线模块只需点击

 - 企业微信中机器人会发送开始、结束通知

 
-
问题
- 谁上线了?
    
- 点击企业微信中的控制台
(可以不愧是你啊) 
 - 点击企业微信中的控制台
 - 包上错了?环境错了?
    
- 每个配置都是写死的,每个工程都可以回溯上线日志
 - 每次执行构建都有最后一次提交的备注 
        简单配置
 
 - 指定分支参数

 - 指定git仓库

 - 可以选择构建前流程,指定构建命令

 - 构建成功后把指定包发送到指定服务器,执行重启命令(shell),等

 
为什么jenkins
- 个人感觉。jenkins拥有非常丰富的插件市场,包括用到的企业微信机器人插件、maven、node、git、ssh支持。