文章目录
持续集成CI
持续集成(Continuous integration,简称CI)指的是频繁地(一天多次)将代码集成到主干。
持续集成的目的就是让产品可以快速迭代,同时还能保证高质量,它的核心措施是将代码集成到主干之间,
必须通过自动化测试,只要有一个测试用例失败,就不能集成。
通过持续集成,团队可以快速从一个功能到另一个功能,简而言之,敏捷开发很大一部分要归功于持续集成。
它的好处主要有两个。
1、快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易。
2、防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。
持续部署CD
对于一个完整、成熟的 CI/CD 管道来说,最后的阶段是持续部署。
持续部署的目标是,代码在任何时刻都是可部署的,可以自动将应用发布到生产环境。
实际上,持续部署意味着开发人员对应用的改动,在编写完成后的几分钟内就能及时生效(前提是它通过了自动化测试)。
这更加便于运营团队持续接收和整合用户反馈。
持续部署的前提是能自动化完成测试、构建、部署等步骤。
部署
部署到linux服务器
target> scp xxx.jar root@192.168.1.191:/root/
nohup java -jar xxx.jar &
firewall-cmd --state # 查看防火墙状态
firewall-cmd --list-ports # 查看所有放行的端口
firewall-cmd --add-port=8081/tcp # 防火墙开启端口
firewall-cmd --remove-port=8081/tcp
Excute shell
mvn package
cd target
ps -ef | grep jenkinsdemo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}' | xargs kill -9 | true
nohup java -jar jenkinsdemo-0.0.1-SNAPSHOT.jar &
持续集成好处:
降低风险,由于持续集成不断去构建、编译、测试,可以早期就发现问题,所以修复代价就小一点。
减少重复性工作。
持续交付可供使用的版本。
持续部署已经包含在持续集成里面,持续部署的前提就是持续集成。