iOS 持续化集成(二) CI jenkins + bitbucket

《iOS 持续化集成(二) CI jenkins + bitbucket》

开始

忙了一天,才发现网上说的都不靠谱,这是我玩CI的最真切的体会,如果你的项目还在本地,那么这个文章将讲述 如何喝 git 代码托管库联系起来。网上有很多教程了,可是我也是按照人家的方式方法来的。发现还是挺多坑的这里一步步的说下

1.我开始想,代码通过jenkins 来拉取从bit bucket ,后来开始配置job —》源码管理—》git 的respository URL && Credentials 。特别是Credentials的设置,有账号+密码的。有用户名加私钥的。我选择了第二种,本以为简单,发现错了。这个公钥不要按照网上说的大部分说的生成,因为他是以你当前电脑的用户为用户名,可是jenkins 希望要的是 jenkins 的用户 名义下的私钥,这样你怎么clone 代码都是clone 不下来的。

解决方案:ssh-keygen -t rsa -C jenkins

记得在jenkins 目录下生产你的rsa key ,真是坑了我半天,才发现放的地方不对,老外的回答也不在点上啊。

2.开始配置的xcode pluin 上一篇我写了我的配置,可是发现网上有个更全的
这里和大家分享一下啊
https://github.com/cyupa/JenkinsCI-iOS
Target: JenkinsCI
Clean before build? YES
Generate Archive? YES
Pack application and build .ipa? YES
.ipa filename pattern: ${VERSION}
Output directory: ${workspace}/Builds/${BUILD_NUMBER}/${BUILD_ID}
Unlock Keychain? YES
Keychain path: ${HOME}/Library/Keychains/login.keychain
Keychain password: your administrator user password
Xcode Schema File: JenkinsCI
Xcode Workspace File: ${WORKSPACE}/JenkinsCI
Xcode Project Directory: ${WORKSPACE}
Xcode Project File: ${WORKSPACE}/JenkinsCI
Build output directory: ${WORKSPACE}/Build
Provide version number and run avgtool? YES
Technical version: ${BUILD_ID}
最后的2个动作可以省略,看你们的测试和产品的要求。为了让ci 每次都能pull到最新的代码,在execute shell 中写了脚本代码。都是git 命令。

3.如果你的项目过于大 > 200mb 那么就先用git clone 下到本地,不要用jenkins 去clone ,jenkins 给我们的时间默认10分钟,如果愿意等那就继续延迟默认时间,可是你的测试小伙伴们可能就不愿意了。
git clone + jenkins pull 这样的搭配。

4.还有事情,就是一个项目中有很多分支,我的做法是没有在git 设置中设置分支,而是在shell 中写了git checkout +分支名称,因为我写指定分支的时候总是失败,为啥,现在还是不知道呢。

终结

这就是目前我经过各种教程熏陶的结果
1,网上的方法大部分都不是解决你的问题

  1. 你的问题只有你的环境知道。
  2. 其实回头看,很简单,只是不知道。
    原文作者:笨驴爱吃胡萝卜
    原文地址: https://www.jianshu.com/p/d10e54639ed0
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞