Name | github Nick Name | Student ID | Scope |
---|---|---|---|
胡雨奇 | ReimuYk | 516030910257 | Build APP |
丁丁 | derFischer | 515015910005 | PPT |
罗宇辰 | 592McAvoy | 516030910101 | PPT |
陈诺 | 199ChenNuo | 516030910199 | README |
注:所有同学都完成了CI/CD环境的搭建,分工仅体现在本次作业中
CI的中文名是持续集成,意为,新的代码一经提交就进行对新代码的构建与测试。根据测试结果可以立即确定新代码与原代码是否正确的集成在一起。
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。
持续集成带来的好处
- 减少风险,减少重复过程
- 任何时间、任何地点生成可部署的软件
- 增强项目的可见性
- 建立团队对开发产品的信心
Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性
- 新建任务
在Jenkins左侧菜单中选择 新建任务 来新建一个任务 - 配置项目
在任务的顶部导航菜单中 General 中配置项目 - 源码管理
在任务的顶部导航菜单中的 源码管理 中使用git、SVN等工具进行源码管理 - 配置触发器
- 定时构建
在指定时间进行项目构建(不关心源码是否发生变化) - 轮询SCM
定时检查源码变更,如果存在更新那么执行构建动作
- 定时构建
- 配置构建命令
在 构建 下的输入框内输入需要的构建命令 - 构建
在Jenkins左侧导航菜单中选择 立即构建 来构建项目
- 向版本控制库提交新代码
- 自动化构建
- 编译
- 分发
- 部署
- 测试
- 修改代码
- 构建成功
- Travis CI
- ...
CD包含了持续交付和持续部署。
持续交付(Continuous Delivery)在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。
持续部署(Contiuous Deployment)则是在持续交付的基础上,把部署到生产环境的过程自动化。
持续交付与持续部署的区别:
持续部署的模式下,所有的变更都会被自动部署到生产环境中,而持续交付中,所有的变更都可以被部署到生产环境中,但出于业务考虑也可以选择不部署。因此要实施持续部署时,要先实施持续交付。
本次作业选用的是持续部署。
持续部署是通过自动化的构建、测试和部署循环来快速交付高质量的产品。某种程度上代表了一个开发团队工程化的程度,毕竟快速运转的互联网公司人力成本会高于机器,投资机器优化开发流程化相对也提高了人的效率,让生产效率最大化。
持续部署带来的好处
- 快速发布
- 缩短 编码->测试->上线->交付 的迭代周期
heroku是一个免费的,支持多种语言的开源平台。开源借助heroku完成代码的构建、运行与持续部署。
- 注册heroku
进入官网注册即可。注册时需要开启代理。 - 安装heroku-cli、nodejs git
在官网选择合适本地系统的heroku-cli,通过命令node --version
npm --version
git --version
可以检查本地是否安装了需要的一些软件
- 登录
heroku login
- 创建仓库
heroku create
- 上传 & 部署
git push heroku master
- 查看部署完成的项目
heroku open
- 修改后,暂存 & 提交
git add .
git commit - 推送
git push
- GCE
- AWS
- ...
-
[ Jenkins工具 ]之一:持续集成和jenkins入门介绍
https://www.2cto.com/kf/201609/544550.html -
Jenkins+Node.js持续集成
https://www.jianshu.com/p/64b498304d07 -
Jenkins+Github持续集成
https://www.jianshu.com/p/b2ed4d23a3a9 -
Jenkins基础入门-7-创建一个Project的基本过程
https://blog.csdn.net/u011541946/article/details/78014179 -
docker与CI/CD
https://blog.csdn.net/eugenelee2096/article/details/73332615 -
CI/CD持续集成/持续部署 敏捷开发
https://blog.csdn.net/qq_32261399/article/details/76651376 -
Heroku官方文档
https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction