转:http://www.itiger.me/?p=30
Jenkins+Github+Testflight在Mac下搭建持续集成环境
关于持续集成的基本概念,可以看一看持续集成学习笔记-入门篇(1)持续集成基本概念,也可自行Google。
为了让大家先有个宏观的概念,我把该文中提到持续集成使用阶段主要步骤抄在这里:
- 程序员从源代码仓库下载最新程序
- 程序员编写代码、测试用例,并提交更新结果给版本控制仓库
- CI服务器根据触发条件,从版本控制仓库提取最新代码,交给构建工具的工作空间
- 构建工具对代码进行编译、测试,并进行打包。如有必要,实现产品部署、发布
- 通过构建工具与版本控制工具的配合,实现产品版本控制与管理
- 建立、管理项目开发的工作网站
本文将详细介绍如何Mac下搭建Jenkins+Github+Testflight持续集成环境,那就闲话不多说了,直接上步骤
1.下载安装包:http://jenkins-ci.org/
2.安装后在浏览器访问http://localhost:8080/
3.安装插件
系统管理 -> 管理插件 -> 可选插件
依次找到git plugin、github plugin、Xcode plugin、Testfilght plugin 并安装
4.系统设置
找到 Test Flight这一栏 并在相应位置填入API Token和team Token(需要你到https://testflightapp.com注册申请哈), 不要忘记页面最下方点保存
5.新建job
选择“构建一个*风格的软件项目”,创建一个新任务
6.任务配置
6.1 源码管理
如果是一个public repository,选择Git并在Repository URL中直接填入github源码仓库地址即可。
这里想说一下Private 私有项目:
-
在github中复制SSH URL(如下图),将地址贴到Repository URL
-
打开终端为名为jenkins的用户设置一个密码
sudo dscl . passwd /Users/jenkins YourPassword
-
以jenkins用户身份生成ssh key,并与github帐号关联
su jenkins
剩下的部分偷个懒,大家按照这里的步骤继续进行。Step 3中让你复制刚刚生成的key到剪切板pbcopy < ~/.ssh/id_rsa.pub
就改成vi ~/.ssh/id_rsa.pub
然后手动复制这个key,剩下的和刚才文档一样继续进行。
6.2 构建触发器
触发器,就是设置发生了什么事件来触发构建,我们在一开始安装了gitbub Plugin插件,所以可以选择“Build when a change is pushed to GitHub”,你也可以在设置每隔15分钟就构建一次(如下图)
6.3 设置构建步骤
构建 -> 增加构建步骤 -> Xcode
其实Xcode Plugin这个插件其实本质上还是用的xcodebuild的命令行,所以请确保你的Xcode中 Command Line Tools已经安装。
其他的设置比较简单就不说了,就说说关于证书这一块吧
如果在构建中出现了”Code Sign error: There are no valid certificate/private key pairs in the default keychain”这个错误,到你的钥匙串串中,把有关iPhone开发的证书从“登录”便签复制一份到“系统”标签里面。
这个问题解决以后你会遇到下一个错误 “Code Sign error: Provisioning profile ‘xxxxx-xxxx-xxxx-xxxxx’ can’t be found”
解决这个问题也很简单,找到相应的.mobileprovision文件,将其复制到/Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profile就可以了
6.4 设置构建后操作
构建后操作 -> add post-build action -> Upload to Testflight
点击保存,任务配置就算大功告成了~
7.见证奇迹的时刻
点击“立即构建”,如果一切顺利,几分钟后构建完成,测试人员就可以在Testflight上安装最新的测试版本了。good luck!
8.写在最后
我也是初学者,本文如有不对之处欢迎大家留言指正。