持续集成-jenkins 环境搭建

转自:http://blog.jxdev.me/blog/2015/03/26/jian-xin-de-chi-xu-ji-cheng-zhi-lu-%5B%3F%5D-da-jian-jenkinshuan-jing/java

完成后结果

这个图是我刚才个人Jenkins服务器上截的图,能看见左侧的构建历史.这只是第一步,之后还要加入最重要的自动化测试,才算是一套完整的持续集成系统,那么首先你得迈出第一步.我以我如今参与开发iOS项目为例,记录一下搭建Jinkens的步骤,若是能帮到你,那么太好了.git

ScreenShot

最近接触了时下最火的敏捷开发模式,让整个团队保持高效率,而且要争取作到代码随时可发布的状态,而敏捷开发的一个重要的部分就是实现自动化测试以及自动化构建,尽快发现问题,把风险放到前期.在一个项目中,各个开发人员都会大量并且频繁的提交代码,而你的代码会不会影响到其余人的代码,会不会形成一些错误甚至是崩溃的状况,Jenkins会帮你把这些问题提前的暴露出来,Let’s do this!github

Jenkins

Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专一于更为重要的业务逻辑实现上。同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展现项目构建的趋势和稳定性。过多的介绍就不详细说了,更多的详细信息请移步Jinkens官网.xcode

安装

这里要详细说明一下,以前我是在官网下载的.pkg的安装程序,而后双击安装,安装结束之后会在本地的/Users/Shared (Mac)下生成Jenkins的目录,不过这样的话,在最后执行Shell脚本Build的过程当中,没有任何反应,在网络上搜索的结果是多是由于权限不够致使的,我遇到了这个问题,因此我不建议你们用这种安装方式.也一点也不酷,对不对?那么咱们采用第二种安装方式:浏览器

brew install jenkins

对,咱们也用brew安装Jenkins!很是简单,很是Geek!这里假定你的Mac已经安装了Java,以前Mac是自带Java的,不过到个某个版本以后,OS X再也不自带Java了,你须要本身下载并安装,过程很简单,再也不详细说明了.服务器

在安装好Jenkins以后,一样在命令行执行:网络

java -jar /usr/local/opt/jenkins/libexec/jenkins.war

这是用来启动Jenkins的,看见第一个单词java了吗?其实Jenkins是一个Java程序,这就是为何我再上面说过的要安装Java.这样启动的Jenkins不会在下次电脑重启的时候自动启动,你须要手动的设置一下,具体的请自行Google吧.测试

启动

启动Jenkins很是简单,在浏览器输入 http://localhost:8080/ 就能够看见它简陋的页面了…这个图我不是本身截取的,用了网上的一张图片,不过样子是同样的.ui

ScreenShot

看了这个页面,你说我说它简陋过度吗?this

插件

我以为之因此Jenkins强大,真正强大的是它无所不及的插件,有了强大的插件,才能给你带来最强悍的功能.若是你用Git来管理代码,那么太好了.既然是第一步,那咱们就按照最简单的来,在左侧菜单的系统设置中,找到插件管理.只安装一个Git插件来获取代码.在插件页面的可用插件里搜索Git,安装就好,过程太简单,不须要详细说明.

配置

插件安装好了,接下来,咱们来配置项目吧.新建一个自由风格的软件项目,而后你就会来到项目配置的页面了.

ScreenShot

由于你安装Git插件,因此你能够在源码管理里看见Git的选项,勾选它,而后配置,在Repository URL里填写你远程仓库的地址,若是是私有仓的话,须要填写验证,用户名和密码.好比个人这个项目托管在开源中国的 Git服务上,而我专门为Jenkins创建了一个用户拉取代码的用户.另外要注意,你须要从哪一个分支拉取代码. 好比我要从dev分支拉取代码,在下面的Branches to build里要写上*/dev.

若是到这里没有问题的话,我建议你当即构建一下,看看能不能从代码仓把代码拉取回来,若是成功的话,你会看见相似第一张图片左侧的蓝色小圆球,若是失败,那么小圆球是红色的,说明你的代码没有被拉取成功,你能够点击小圆球右侧,查看Console Output看看具体出错在哪里.

ScreenShot

接下来,配置一下构建触发器,如上图,这样配置的意思就是,每隔30分钟去代码仓拉取一下代码,若是两次的代码没有差别,那么不会构建,若是代码有变化的话,会继续自动构建.

ScreenShot

开始准备构建吧,在构建中新建一个Exceute Shell,由于是持续集成的第一步,因此只完成Build就能够了, 在Command中输入你所要执行的脚本吧.这里要说明一下,最好先执行一下:

ls

查看一下当前目录,由于当前的目录可能不是你项目的.xcodeproj或者.xcworkspace文件所存在的目录. 由于是构建iOS项目,因此利用Xcode提供的Xcodebuild就行,能够只是build:

xcodebuild -worksapce TEST.xcworkspace -scheme TEST clean build

由于我用CocoaPods托管第三方类库,因此要执行的是.xcworkspace,这句话的意思就是对当前目录中的TEST项目里面的Test Target 执行 clean 而后再 build.简单吧?恩,第一步要慢慢来.

若是要生成.ipa文件也能够,只是稍微麻烦一点:

xcodebuild -workspace TEST.xcworkspace -scheme TEST -destination generic/platform=iOS -configuration Release archive -archivePath /Users/jxdwinter/Desktop/TEST.xcarchive
xcodebuild -exportArchive -exportFormat ipa -archivePath /Users/jxdwinter/Desktop/TEST.xcarchive -exportPath /Users/jxdwinter/Desktop/"$(date +%Y%m%d%H%M%S).ipa" -exportProvisioningProfile 'TEST'

这两句话会在个人桌面生成一个文件名为构建日期ipa文件,值得注意的地方就是最后的exportProvisioningPrefile,若是是iOS开发的话,你应该明白是什么意思吧?这也是最容易出错的地方.这里不是本文的重点,因此再也不赘述了.

再构建一下看看左侧小圆球的颜色吧?若是成功的话,那么恭喜你完成了第一步,之后还有不少要作,只是单纯的build的话,那么Jenkins就失去了它的价值了.若是失败的话,那么多是我没写明白…不过这真的很简单,但愿本文能给你点帮助.

相关文章
相关标签/搜索