iOS的Jenkins持续集成记录
不久前,我研究过自动打包,弄出了个自动打包的Python脚本,此后需要打包就一句命令再传到蒲公英搞定,不用再点啊点等好久。
恩,然后呢,现在换了个测试。测试提出需要将版本归到他的掌控下,那么由我来打包已经不足以完成这个需求了。
其实呢,自己打包也挺烦的,每次弄完一些bug就要打包一遍,把打包交出去也挺好。虽然开发就我一个,测试也就一个hhh。
言归正传,经过开发部内部讨论。打算搭一个Jenkins,这样安卓和iOS都可以持续构建。
服务器是Linux的,嗯,插一句,特么的开hui,我的服务器租国外,就特么连不上了。。太可怕了!
按照前人的教程,基本都OK,基本参考了这两篇,手把手教你利用Jenkins持续集成iOS项目,IOS开发之最新最全的持续集成解决方案,问题基本都能解决。。然后给我自己挖的坑是布完才意识到,不是Mac环境没有Xcode打不了包,然后通过这篇解决Jenkins自动打包 配置mac slave节点,将我的Mac作为节点来打包。
既然持续集成OK了,那么我们需要怎么维护好分支,保证测试的版本控制呢?
我的方案是这样的,维护一个release分支,该分支只有在我们将bug自测OK了可以提交给测试,才将代码同步过去,告知修改的bug,然后通知测试集成测试。其他情况不允许修改release分支。
顺便也说说我定的我们IOS部门的代码管理,我们master是一个总分支,用来储存上线版本,然后每个开发各自维护自己的一个分支,每天上班pull对方分支,待上线了,merge完切到master打包打tag上线。
现在加release分支,开发仍然维护自己分支,需要测试回归bug时,切到release分支,pull自己分支合并代码。
大致先这样,周五刚集成好,接下来先看看运行情况如何。
记的有点乱,有空再理一理
*************************11月3日更新********************
之前在我自己的小本本上构建成功,但是后来想想不可能一直在我自己本本上持续集成吧。就在公司电脑上再构建了一个,遇到了很多很多问题,下面记录一下。
1.建议不要用pkg包来进行Jenkins的安装,建议使用在本机的Java环境中安装,也就是war包安装。比如说,咱们装一个tomacat,然后直接运行Jenkins的war包。为什么要这么做呢?因为如果用pkg包安装,会生成一个Jenkins的账户,与常用账户不同,导致很多证书的问题,比如我自己环境下脚本能够打包成功,但是在Jenkins内部却不能打包成功。自己环境ruby是2.4.1了,Jenkins还是莫名其妙的2.0。
最蛋疼的还是证书方面的问题,比如这个提示就无解,明明有证书偏要装死的感觉。
Check dependencies
Code Signing Error: There are no accounts registered with Xcode. Add your developer account to Xcode
Code Signing Error: No profiles for '********' were found: Xcode couldn't find any iOS App Development provisioning profiles matching '******'.
warning: no rule to process file '/Users/Shared/Jenkins/Home/workspace/paopao/PaopaoRunning/PaopaoRunning/Feature/Running/View/UICountingLabel.h' of type sourcecode.c.h for architecture armv7
warning: no rule to process file '/Users/Shared/Jenkins/Home/workspace/paopao/PaopaoRunning/PaopaoRunning/Feature/Live/RongChatRoom/MBProgressHUD/README.mdown' of type net.daringfireball.markdown for architecture armv7
warning: no rule to process file '/Users/Shared/Jenkins/Home/workspace/paopao/PaopaoRunning/PaopaoRunning/Feature/Running/View/UICountingLabel.h' of type sourcecode.c.h for architecture arm64
warning: no rule to process file '/Users/Shared/Jenkins/Home/workspace/paopao/PaopaoRunning/PaopaoRunning/Feature/Live/RongChatRoom/MBProgressHUD/README.mdown' of type net.daringfireball.markdown for architecture arm64
Code Signing Error: Code signing is required for product type 'Application' in SDK 'iOS 11.0'
** BUILD FAILED **
The following build commands failed:
Check dependencies
(1 failure)
Build step 'Execute shell' marked build as failure
Finished: FAILURE