CI环境iOS入门篇(jenkins+pipeline+fast

2017-12-11  本文已影响0人  成瀬純一

前言

持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。而持续集成可以保证在任何时间、任何地点生成可部署的软件。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。同时减少风险与重复性的过程、增强项目的可见性。

一、持续集成工具Jenkins

Jenkins是一个基于Java环境开发的持续集成工具。它的开源性使它具备大量的插件,极大的扩展了其功能,可以构建多种平台的软件。除此之外,由于社区活跃、用户界面相对友好、安装和配置都易于上手等特点,Jenkins一直深受大家喜爱。


1.Jenkins安装
首先,由于Jenkins是基于Java环境的,所以要先确保机器上安装java环境
确保以上条件后,进入Jenkins官网进行下载安装(建议用war包安装,这样不会建立新的用户,不涉及权限问题)

install Jenkins

2.Jenkins初始化
安装完成后 Jenkins用户/Home/secrets下复制initialAdminPassword内密码,浏览器进入Jenkins管理界面(默认为:localhost:8080)将复制的密码填入,进行初始化配置。(如使用war包安装,此处可在terminal内看到提示,有明文的初始化密码以及初始化密码存放的路径)插件的选择安装完成后可以在插件管理中配置,所以一开始选择插件时无论是建议配置或自定义配置都无关紧要。只要记得最后一步配置的管理员信息就可以了。

jenkin unlock.png Jenkins customize create admin

3.Jenkins插件安装
配置完成后登录Jenkins管理页面,进入右侧系统管理——插件管理,选择可用插件选项卡进行选择或搜索,一次添加插件(某些插件可能要求科学上网)在本例中,添加以下插件:

4.Jenkins添加授权
在系统管理——Credentials中添加新的你所需的授权,例如远程仓库的账号密码或ssh私钥信息等。

Jenkins addCreadentials

上传完成后,Jenkins会为每一个授权富裕一个加密并提供对应此授权的ID,之后需要用到的地方,选择或填写对应的ID即可。

5.Jenkins环境变量配置
在利用pipeline、fastlane构建版本时,需要获取相应的信息、如证书信息等。这是需要在jenkins环境变量中配置对应的变量。(变量也可在pipeline指定的jenkins运行脚本中进行配置)。进入系统管理——系统设置中,勾选环境变量进行添加,此例中添加以下环境变量:

Jenkins environment variable

6.创建pipeline新工程
点击新建,选择pipeline模式,建立并配置项目

Jenkins create pipeline project Jenkins project general setting Jenkins project triggers setting Jenkins pipeline script Jenkins pipeline script from SCM

至此,一个pipeline的项目就配置完成了,但由于本例中结合了fastlane来进行构建,所以目前还需配置好fastlane才能进行构建

二、自动构建工具fastlane

fastlane是为你的iOS和Android应用程序自动测试部署和发布的最简单的方法。它处理所有繁琐的任务,比如生成屏幕截图、处理代码签名和发布应用程序。


1.安装fastlane

首先务必保证已安装最新版的Xcode命令行工具,然后使用Homebrew

brew cask install fastlane

或下载fastlane安装包进行安装。

2.集成fastlane到项目

在项目根目录下执行命令

fastlane init

生成 fastlane文件夹,下面会自动生成Appfile(用于配置项目信息)及Fastfile(fastlane执行脚本) ,打开文件进行配置 。

fastlane APPfile fastlane Fastfile

3.集成match到项目

执行命令

match init
match development // 其他类型,可选类型有appstore, adhoc, development, enterprise

在生成Matchfile过程中会需要用户指定APPID、远程仓库地址、解密私钥(务必来及)等信息(证书信息务必放到私有仓库) 生成 Matchfile文件(用于配置appid信息)打开文件进行配置。

fastlane Matchfile

4.集成gym到项目

执行命令

gym init

生成 Gymfile文件(用于配置项目打包信息)打开文件进行配置

fastlane Gymfile

5.加入第三方插件

选择需要的插件,用命令进行添加,生成Pluginfile文件

fastlane add_plugin XXX // 插件名

执行add_plugin命令同时时会在根目录下生成gemfile,也可在其中配置其他需要安装的工具,记得bundle install。

fastlane Gemfile

以上match、gym、等都可以直接写命令到Fastfile中,但分文件来写能保持代码整洁,所有配置也在fastlane脚本中重写覆盖。具体行为(Action)及参数参考 Fastlane官方文档

三、总结

在配置的过程中也遇到了非常多的问题,在此记录一下


1.cocoapod第一次运行时会去下载库到本地时间较长,此时就只有默默地等待了。
2.两步验证问题及两步验证用于web的session生成后字符集的问题。已在文中提及了解决方式。
3.添加完插件后需要bundle install一下,此时务必科学上网。
4.使用自动化打包,需要打开对应要打包项目scheme的share选项。

四、参考

上一篇 下一篇

猜你喜欢

热点阅读