背景
随着我司短视频业务的不断发展,人力的增加,业务量成指数增长。
如此多的业务,使得传统的代码集成方式、送测频率已经远远不能满足接下来的业务需求。
传统代码集成方式:
存在的问题
1.Bug总是在最后才出现。
2.越到项目后期,问题越难解决。
3.软件交付时机无法保障。
4.程序经常需要变更。 某些项目中,程序会经常需要变更,特别是敏捷开发实践者。
5.无效的等待变多。 开发在等待集成其他人的模块,测试人员在等待开发修复Bug,产品经理在等待新版本上线给客户做演示,项目经理在等待其他人提交代码。
6.用户的满足度低。
那我们应该如何解决这种问题呢?
持续集成:
一、持续集成的好处
1.解放了重复性劳动。 自动化部署工作可以解放集成、测试、部署等重复性劳动,而机器集成的频率明显比手工高很多。
2.更快地修复问题。 持续集成更早的获取变更,更早的进入测试,更早的发现问题,解决问题的成本显著下降。
3.更快的交付成果。 更早发现错误减少解决错误所需的工作量。集成服务器在构建环节发现错误可以及时通知开发人员修复。集成服务器在部署环节发现错误可以回退到上一版本,服务器始终有一个可用的版本。
4.减少手工的错误。 在重复性动作上,人容易犯错,而机器犯错的几率几乎为零。
5.减少了等待时间。 缩短了从开发、集成、测试、部署各个环节的时间,从而也就缩短了中间可以出现的等待时机。持续集成,意味着开发、集成、测试、部署也得以持续。
6.更高的产品质量。 集成服务器往往提供代码质量检测等功能,对不规范或有错误的地方会进行标致,也可以设置邮件和短信等进行警告。
二、iOS 持续集成的原理
1、通过 Jenkins 作为一个触发器,捕捉 push 等操作或者定时,触发打包动作
2、GIT plugin 进行项目源码管理
3、通过 fastlane 进行打包
4、通过 pgyer (蒲公英) 平台进行分发,通知相应负责人
Part 1 - Jenkins
Jenkins 是什么?
Jenkins是开源 CI(Continuous Integration)& CD (Continuous Delivery)软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
一、准备
1、安装Java
a. 安装 java sdk
2、安装Jenkins
a. Download Jenkins
3、安装Cocoapods
a. 安装 Cocoapods
4、安装fastlane
a. 安装 fastlane
b.安装fastlane的pgyer插件,versioning插件
5、启动
a.正常回自动启动。如未启动,执行 /Library/Application Support /Jenkins下的 jenkins-runner.sh 启动j