Jenkins持续化集成
安装
- 下载安装包安装
- 命令行安装
下载安装包安装
http://mirrors.jenkins.io/osx/latest
安装完成后,打开localhost:8080,后续步骤和命令行一致
命令行安装
brew install jenkins
brew install jenkins-lts (备注: LTS - Long Team Support 长期支持版本,也就是稳定版)
执行过程如图:
安装完之后启动
brew services start jenkins
浏览器输入 localhost: 8080 初次进入需要你创建管理员用户:
需要输入管理员密码来解锁 Jenkins
我们需要输入管理员密码,拷贝 /Users/tdw/.jenkins/secrets/initialAdminPassword里面的字符串
点击下一步 需要自定义JK:
我们默认选第一个,然后就开始安装插件了。
插件安装完毕后,需要创建管理员账户,自定义输入即可。
然后用该用户登录即可。若创建失败的话,则用之前的管理员账户 admin / 462ad52d4b1347d3a70d21791dbf6573 登录后再次新建用户即可。
登录后界面:
🍺 安装过程也就Complete !
创建一个新任务(图文版)
安装成功后,我们创建一个新任务 (跑一下团贷网TuanDaiV4的单元测试)
输入任务名称 以及 选择【构建一个自由风格的软件项目】 ,点击【确定】创建。
这个就是我们的配置界面了。 我们的源码托管在GitLab上面,所以我们要去插件管理里面将所需要的插件装上。
选择【可选插件】过滤 gitlab,将所有gitlab插件装上去。
安装成功后如图所示。接下来我们去配置一下GitLab相关,点击【系统管理】- 【系统设置】- 【GitLab】
Connection name 这个自己填写 , 我这边填写 example 。
Gitlab host URL 这个填写 http://git.example.com
Credentials 点击【Add】来添加
Kind 我们选择** GitLab API token**
**ID **不填写
Description 不填写
GitLab API token 可以在GitLab获取到
OK 填写完毕后,我们测试一下是否可行,点击【Test connection】,显示 success 则表示成功。
#
我们继续去配置刚才新建任务SettingUnitTest里面的【源码管理】,填写团贷的托管URL 以及 分支 ,我这里是 feature_se!!ttingUnitTests_20170930_xulijun
Credientials 这里我们点击 【Add】, 然后 Kind 我们选择 SSH Username with private key , username 我们随意填写,PrivateKey 我们选择 Enter directly 填写私有Key。
#
私有Key我们可以这么去获取到。
这样的话GitLab也就基本配置可以了。我们跑一下!
看一下工作空间,我们从gitlab上拉下来代码了。
接下来就是编译工程以及跑单元测试。 我们点击【增加构建步骤】 - 【Execute shell】
输入以下代码段:
需加以下代码,否则pod install会提示ascii错误等
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
# 切换到工程目录下
cd TuanDaiV4
# 安装cocoapods
pod install
# 编译工程&跑单元测试
xcodebuild -workspace TuanDaiV4.xcworkspace -scheme TuanDaiV4 -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.0' test
点击【保存】,然后到该任务下点击【立刻构建】
这时候若出现了 pod command not found 是因为我们没有设置环境变量,pod命令 找不到。
我们需要在 【系统设置】 - 【全局设置】 添加环境变量,这里我们直接在本地命令行打印$PATH路径,拷贝到全局设置里面。
#
#
OK,接下来就再次构建一下。成功的话,我们能看到pod安装库中。。。
#
漫长的等待后,我们能看到测试用例跑起来了。
🍺 这样一个简单的跑测试用例任务也就构建完毕了! 如果测试用例失败了就会显示FAIL
小结:
通过一个简单的例子我们了解了一下JK,就如同它的标志一样,如同一位管家,管理任务,分配任务,运行任务。 例如我们如果后面要自动化时候,例如自动化review,自动化单元测试,自动化打包啊。都可以通过JK管家来做!
JK集成单元测试报告
安装JUnit Plugin插件:
命令行生成JUnit报告:
以前是用xctool工具来生成junit报告,但是xctool官方已经贴出告示不维护了。我们转用xcpretty。
使用xcpretty生成单元测试报告
xcodebuild -workspace TuanDaiV4.xcworkspace -scheme TuanDaiV4 -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.0' -enableCodeCoverage YES clean test | xcpretty -r junit
添加构建后操作:
选择【Publish Junit test result report】
填写测试报告生成的xml地址(ps:这个是xcpretty生成的,具体可以自己去看看目录),这里我们填写 TuanDaiV4/build/reports/junit.xml
点击保存,重新构建一下任务,构建完后可以看到一个测试结果
如果我们想要更丰富的展示,我们安装一下 Test Results Analyzer插件。 然后看一下
这样我们的单元测试报告基本完成!
JK集成覆盖率报告
覆盖率我们使用slather来生成
slather coverage --html --scheme TuanDaiV4 --workspace TuanDaiV4.xcworkspace TuanDaiV4.xcodeproj
上面我们是生成html文件,我们需要通过jenkins展示,安装插件
安装成功后,添加构建后操作
填写HTML目录以及index page
保存后重新构建任务,我们看看
这样覆盖率报告基本完成!
Tips
命令行关闭进程 (适用于安装包安装情形)
ps -e | grep jenkins
53 ?? 0:02.51 /usr/bin/java -jar /Applications/Jenkins/jenkins.war 392 ttys000 0:00.00 grep jenkins
$ sudo kill 53
命令行开始daemon/停止daemon (适用于安装包安装情形)
Start Jenkins: sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
Stop Jenkins: sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
命令行卸载Jenkins (适用于安装包安装情形)
'/Library/Application Support/Jenkins/Uninstall.command'
执行过程如图