构建持续集成Jenkins

时间:2022-03-24 21:33:54

转:http://www.itiger.me/?p=30

Jenkins+Github+Testflight在Mac下搭建持续集成环境 

关于持续集成的基本概念,可以看一看持续集成学习笔记-入门篇(1)持续集成基本概念,也可自行Google。

为了让大家先有个宏观的概念,我把该文中提到持续集成使用阶段主要步骤抄在这里:

  1. 程序员从源代码仓库下载最新程序
  2. 程序员编写代码、测试用例,并提交更新结果给版本控制仓库
  3. CI服务器根据触发条件,从版本控制仓库提取最新代码,交给构建工具的工作空间
  4. 构建工具对代码进行编译、测试,并进行打包。如有必要,实现产品部署、发布
  5. 通过构建工具与版本控制工具的配合,实现产品版本控制与管理
  6. 建立、管理项目开发的工作网站

本文将详细介绍如何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注册申请哈), 不要忘记页面最下方点保存 构建持续集成Jenkins

5.新建job

选择“构建一个*风格的软件项目”,创建一个新任务 构建持续集成Jenkins

 

6.任务配置

6.1 源码管理

构建持续集成Jenkins 如果是一个public repository,选择Git并在Repository URL中直接填入github源码仓库地址即可。

这里想说一下Private 私有项目:

  • 在github中复制SSH URL(如下图),将地址贴到Repository URL

    构建持续集成Jenkins

  • 打开终端为名为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分钟就构建一次(如下图) 构建持续集成Jenkins

6.3 设置构建步骤

构建 -> 增加构建步骤 -> Xcode
其实Xcode Plugin这个插件其实本质上还是用的xcodebuild的命令行,所以请确保你的Xcode中 Command Line Tools已经安装。
构建持续集成Jenkins
其他的设置比较简单就不说了,就说说关于证书这一块吧
构建持续集成Jenkins
如果在构建中出现了”Code Sign error: There are no valid certificate/private key pairs in the default keychain”这个错误,到你的钥匙串串中,把有关iPhone开发的证书从“登录”便签复制一份到“系统”标签里面。
构建持续集成Jenkins
这个问题解决以后你会遇到下一个错误 “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.写在最后

我也是初学者,本文如有不对之处欢迎大家留言指正。