一、简述
jenkins是一个广泛用于持续构建的可视化web工具,持续构建即各种项目的”自动化”编译、打包、分发部署。jenkins可以很好的支持各种语言(比如:java, c#, php等)的项目构建,也完全兼容ant、maven、gradle等多种第三方构建工具,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如github、bitbucket直接集成。
二、Jenkins的安装
1、Jenkins本身是用java语言开发的,所以安装Jenkins之前,要保证你的电脑有jdk,如果没有,请到如下链接下载:http://rj.baidu.com/soft/detail/25851.html?ald,另外建议git、ant、maven、gradle、groovy等工具也一并安装好,方便与这些构建工具集成。
2、进入Jenkins的官网 https://jenkins.io/index.html,然后下载并安装Jenkins。此处有两种安装方法,使用命令行安装和使用jenkins.pkg安装,建议使用后一种,步骤如下:
(1)如下图,点击 Download Jenkins
(2)然后选择 LTS Release->2.7.1.war->Mac OS X
(3)下载完成后,得到 jenkins-2.7.1.pkg 文件,点击直接安装即可,安装过程中,一路continue,到下图时,取消 start at boot as“jenkins”,一般不需要自启动。
(4)安装完成后,会直接跳转到如下界面,如果没有跳转或者跳转失败,可通过执行如下命令 ” open /Applications/Jenkins/jenkins.war ” 进入到该界面:
(5)观察图中的路径,然后打开你的终端,执行如下命令(注意:该命令仅在安装Jenkins的过程中执行才有效;安装成功后,再在终端中执行是无效的):
(6)然后将我们得到的password输入到“Administrator password“中,即可进入如下界面,接着安装一些建议的插件,安装过程中,有的插件可能会安装失败,可以跳过,之后需要对应的插件时,再重新安装即可,具体后面会讲到:
(7)插件安装完成后,可能会卡在如下界面,不会自动跳转,刷新下界面即可:
(9)注册成功后,点击”Start using Jenkins”
三、Jenkins的使用
1、安装成功后,会进入到如下界面:
2、由于安装过程中,有些插件可能会安装失败,通过如下方式检查所需的插件是否安装成功。
(1)通过“系统管理->管理插件->已安装“,检查如下所需的插件是否安装成功:
<1> Xcode integration
<2> GIT plugin
<3> Post-Build Script Plug-in
<4> GitHub plugin
<5> Email Extension Plugin
特别提醒:本人的项目是使用Git托管在OSChina上的,所以具体需要什么插件要具体考虑,建议最好对照上述步骤(7)中的插件安装结果来检查。
(2)如果有对应的插件没有安装成功,可通过“系统管理->管理插件->可选插件“来安装。安装插件的过程中,如下:
可以看到,插件已经安装成功。但是,打开“系统管理->管理插件->已安装“时,没有找到刚刚安装的插件,这是可以通过重启Jenkins,并重新安装来解决,直到最终我们安装的插件出现在“系统管理->管理插件->已安装“中。
提示:重启Jenkins的方法为:localhost:8080/restart
(2)输入项目名称,并选择构建一个自由风格的软件项目,点击下方的OK。
(3)General 中建议写上一些项目描述,其余的不用操作
(4)源码管理,配置如下:
我的项目是使用Git托管在OSChina上的,具体情况具体对待,配置如下:
<1> 选择Git
<2> 首先将托管在OSChina上的项目的URL取出,并粘贴在图中位置
<3> 通过 “Credentials->Add->Jenkins”来添加OSChina的用户名和密码。
<4> 输入对应的用户名和密码后,并在Credentials中选择该帐号,其余选项不用操作。
(5)构建触发器,有多个选项,具体选择要看你的需求,举例说明:
<1> Build periodically:周期进行项目构建,它不关心源码是否发生变化。
<2> Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。
<3> 我们接下来用Build periodically来演示,如下图,其中的日程表设置为 ” 10 12 * * * “,即每天中午的12点10分,都会自动构建一次:
提示:日程表中所填格式的含义,可以点击右侧的❓来查看,其中有很详细的解释。
(6)构建环境,可直接跳过,不用设置。
(7)构建,设置如下:
1)General build settings
<1> 增加构建步骤,选择 Xcode。
<2> 在下图的Target中,保证该Target和Xcode项目工程中的Target同名。
<4> 建议勾选Clean before build?,并将Configuration设为Release。
<5> 勾选Pack application and build .ipa?,同时为即将输出的ipa文件命名并指定输出路径,如下图:
2)Code signing & OS X keychain options
我在OSChina上托管的项目,已经在Xcode中就配置好了证书,所以只需要执行如下步骤:勾选 Unlock Keychain?,并输入对应的Keychain path 和 Keychain password 即可。
提示:怎样获得Keychain path 和 Keychain password ?
解决方案:回到Jenkins首页,系统管理->系统设置->
Xcode Builder,其中Keychain path会自动生成,Keychain Name 和 Keychain password 填写即可。
3)Advanced Xcode build options
此处有个注意点,即你的项目中使用CocoaPods和没有使用CocoaPods的配置是不同的。
<1> 假如你的项目中使用了CocoaPods,如下图配置,至于每一项是什么含义,点击后面的❓,已经解释的很清楚了,不再赘述:
<2> 假如你的项目中没有使用CocoaPods,应配置如下:
4)Versioning 跳过即可。
(8)构建后操作
小提示:点击各个选项最后的❓时,都会有相应选项的详细说明。
1)构建后,上传到fir.im
由于构建后,要上传到http://fir.im/apps,而且上传有两种常用方法,建议使用第一种。
第一种方法:使用插件fir-plugin-0629.hpi,直接点击下载即可。配置如下:
<1> 回到Jenkins首页,系统管理->管理插件->高级,通过下图将你下载的插件上传:
<2> 上传之后,在 “可选插件” 中找到它,然后安装。
<3> 安装成功后,如下图,选择 “增加构建后操作步骤”,选择 “Upload to fir.im”。
<4> 在Upload to fir.im 中,输入你的fir.im Token。
提示:fir.im Token 的获得方式:首先注册一个 fir.im 帐号,然后如下图,找到你的 fir.im Token。
<5> 其余选项略过。
第二种方法:使用命令行的形式配置并上传,简述如下:
<1> 选择 “增加构建后操作步骤”
<2> 选择 “Execute a set of scripts”
<3> 选择 “Add build step”
<4> 选择 “Execute shell”
<5> 在下图中输入:fir p${WORKSPACE}/build/TestJenkins.ipa -T#API Token#
提示1:其中${WORKSPACE}/build/为 .ipa 的输出路径,#API Token#为fir.im的API Token。
提示2:在使用该命令前请先确认安装fir-cli,安装命令如下:
sudo gem install fir-cli –no-ri –no-rdoc
上面的命令来自 fir.im 的工具 fir-cli,这是他们的官方使用说明:官方工具 fir-cli 使用说明。
2)构建后,自动发送邮件提醒
<1> Jenkins 自带一个邮件的通知的功能,但是自带的邮件通知功能,有点简单,不能自定义信息,所以我们安装邮件插件Email Extension Plugin。
<2> 首先确保在 “系统管理->插件管理->已安装 “中,已经安装了Email Extension Plugin,如果没有,请安装。
<3> 通过 “系统管理->系统设置->Extended E-mail Notification” 配置邮件服务器,此处以163邮箱为例,具体配置如下图,并指定 “Default Content Type”:
<4> 点击上图中的 “高级”,可以进一步设置,如下图,即指定一个可用的163邮箱,用来发送邮件,输入正确的邮箱和密码”:
同时指定 ” Default Recipients” 和 “Default Content”,具体如下图,其中 “Default Content” 可根据实际需求来调整。
<5> 在 “系统管理->系统设置->Jenkins Location” 中,将上述163邮箱作为 “系统管理员邮件地址”。
提示:邮箱(以163邮箱为例),一般都是禁止第三方邮件客户端来使用163邮箱来发邮件的,可以通过以下方式解决:
首先,进入163邮箱,找到设置;
最后,如下图,勾选 “POP3/SMTP服务” 和 “IMAP/SMTP服务”,并通过短信验证的方式,实现使用授权码登录第三方邮件客户端。(此处各种邮箱的设置不一定相同,但大同小异)
<6> 回到项目中的 “构建后操作”处,继续进行设置,如下图:
其中的 “Project Recipient List” 是收件人列表,可根据实际需要添加,各个邮箱之间以逗号分隔即可(也可使用cc: or bcc: 的形式,点击右侧❓可查看详情)。其余各项按图中配置即可,如有特殊需要,再针对性设置。
<7> 如果想获得输出log,可通过下图中的 “Attach Build Log” 来设置。
<8> 点击上图中的 “Advanced Settings”,来进一步设置触发方式。如下图,我选择了当构建成功和失败时,都发送邮件通知指定对象。
<9> 在各种具体的触发方式中,同样可以做一些具体设置。例如,想在不同的触发方式下,发送邮件给不同的人,那么就可以通过该功能实现。
例如,在触发成功的情况下,通知下面三人,可如下设置:
(10)当你在(5)中设置的触发时间点到了时,就会自动构建项目,并打包ipa上传。
(11)上传后,可登录http://fir.im/apps去查看,如果上传成功,显示如下,可打开预览查看具体的更新时间:
(12)也可打开设定的邮箱,去验证是否有收到邮件,一般邮件内容如下,可点击其中的 ” ipa下载地址” 去下载该APP: