Jenkins mac-slave iOS CI 集成(三)

这一篇主要是优化下打包速度(完全是记录,新手的话看我参考的那篇就好了)

参考ccache – 让Xcode编译速度飞起来

上一篇讲到mac-slave 的配置和工作,当时我用MBP还是蛮开心,后来在链接这个mini的时候,心态真的炸了.一样的job,在mini上老是出问题
最恶心的一个问题就是:export ipa成功了,但是主机连接slave的时候会报一个连接的错误

FATAL: Remote call on mac-slave failed
java.io.IOException http://stacktrace.jenkins-ci.org/search?query=java.io.
IOException: Remote call on mac-slave failed

《Jenkins mac-slave iOS CI 集成(三)》 WechatIMG10859.jpeg

只不过是换了台机子,就一直有这个错,后来问了同事,这种连接性的错误,可能是在打完包之后,slave机器的其他应用被挂起,导致内存都被xcodebuild 占用了,远程登录变成不可连接状态(和关机断网一个性质),然后我就在打完包之后让它sleep 100就好了,这个时候就上这个图了

《Jenkins mac-slave iOS CI 集成(三)》 WTM

代码如下:

#echo "=================clean================="
xcodebuild -workspace "${TARGET_NAME}.xcworkspace" -scheme "${TARGET_NAME}"  -configuration "Debug" clean

#echo "+++++++++++++++++archive+++++++++++++++++"
xcodebuild archive -workspace ${TARGET_NAME}.xcworkspace -scheme ${TARGET_NAME} -archivePath "${ARCHIVEPATH}/${TARGET_NAME}.xcarchive" -configuration "Debug"

#echo "+++++++++++++++++exportArchive+++++++++++++++++"
xcodebuild -exportArchive -archivePath "${ARCHIVEPATH}/${TARGET_NAME}.xcarchive" -exportPath ${IPA_PATH} -exportOptionsPlist ${EXPORTOPTIONSPLIST}

echo $IPA_PATH/${TARGET_NAME}.ipa

#sleep 100

公司给我配的mac-mini打包,是的,没有错,很老的一台mini.mini作为slave做点事情没有问题,但是在编译这个事情上真的是能慢的让你吐血.同样的脚本和代码打包要20分钟,之前我开发用的MBP 还只要15分钟,我预期预期整个流程5min左右吧

所以,就只能通过软件来解决这个问题了.这篇帖子其实降到了打包速度优化的精华了

能用硬件解决的问题,就不要用软件解决。

但是呢,回到正题.我们还是要尽力折腾下.

  • 先是按照教程安装ccache,然后照着做

还是老样子,别人的流程很清楚了,我就不炒冷饭了
主要是记录下问题

成功后会看到

《Jenkins mac-slave iOS CI 集成(三)》 配置成功后的样子

设置完成后,就可以利用ccache了,首次因为还没有缓存,要添加缓存,所以编译的时间会比没有用ccache要多一会儿,但是第二次之后,会有缓存命中,就可以加快编译速度了,多次之后,可以明显感觉到,编译的速度快了许多,一般至少了加快一倍以上,我们也可以用命令来查看ccache -s的缓存的命中情况:

可以通过修改文件试一下效果,看下cache hit rate变化的样子

问题一: 引用的地方都是ccache-clang ,我在那里查看C++的那个编译是否也被缓存了呢?还是说自己会自动匹配啊

问题二: 咋没有在说面看到ccache.log文件呢?

其他的没啥,修改pch文件,cache hit rate也能达到61%了

添加CXX变量

    原文作者:Draven_Lu
    原文地址: https://www.jianshu.com/p/b68a19fb9fd1
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞