博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CI第一篇 Jenkins+github fir im 蒲公英pgyer com
阅读量:7115 次
发布时间:2019-06-28

本文共 6959 字,大约阅读时间需要 23 分钟。

###更新 v1.1 2.1Git 私有仓库配置 ###导语 本文会渐进的描述我从对CI不了解,到学习并用到开发环境的过程。jenkins的安装部署,jenkins插件安装,jenkins JOB配置以及shell上传到主流测试分发平台(fir.im pgyer.com) ##一、jenkins安装启动 ######直接用brew安装 brew install jenkins

安装没问题的童鞋请直接跳到*** ***

jenkins自身需要java环境,安装需要brew安装器,当然可以选择程序包安装。 bash:brew: command not found 这是环境没有安homebrew

homebrew是用于安装unix的工具包,依赖于xcode的Command line tool ######1.1安装home-brew ######官网:brew.sh ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"`

From https://github.com/Homebrew/homebrew * [new branch] master -> origin/master HEAD is now at 4a9e815 caddy: update 0.7.5 bottle. ==> Installation successful! ==> Next steps Run `brew help` to get started

终端输入上面的信息标示brew安装成功,请安装 brew install jenkins

Run brew help to get started KatherinedeMacBook-Air:~ katherine$ brew install jenkins jenkins: Java 1.6+ is required to install this formula. You can install with Homebrew Cask: brew install Caskroom/cask/java You can download from: http://www.oracle.com/technetwork/java/javase/downloads/index.html Error: An unsatisfied requirement failed this build.

按照提示我们安装java环境 ######1.2 安装java环境

这儿建议直接去下载环境去安装,brew install Cask太慢

brew install java复制代码

KatherinedeMacBook-Air:~ katherine$ brew install java Error: No available formula for java ==> Searching formulae... app-engine-java-sdk jslint4java javarepl libreadline-java ==> Searching taps... homebrew/emacs/javaimp >Caskroom/cask/javafx-scene-builder Caskroom/cask/eclipse-java Caskroom/cask/yourkit->java-profiler Caskroom/cask/java

brew install Caskroom/cask/java复制代码

waiting ...☕️☕️

//据说国际流量被限制的厉害,现在凌晨1点多,下载安装个java sdk得喝好几杯茶,各种vpn也被限制的厉害。

######1.3 jenkins 启动 找到jenkins目录 /usr/local/Cellar/jenkins/1.622/libexec/jenkins.war //若ls不了,ls/usr/local/Cellar/jenkins/ 看版本号路径,cd进入

cd /usr/local/Cellar/jenkins/1.622/libexec/复制代码

启动jenkins

java -jar ./jenkins.war复制代码

八月 10, 2015 1:17:16 上午 hudson.WebAppMain$3 run 信息: Jenkins is fully up and running 八月 10, 2015 1:17:29 上午 hudson.model.UpdateSite updateData 信息: Obtained the latest update center data file for >UpdateSource default 八月 10, 2015 1:17:35 上午 >hudson.model.DownloadService$Downloadable load 信息: Obtained the updated data file for >hudson.tasks.Maven.MavenInstaller

一直在bash命令中,算启动成功了,输入地址测试下

http://localhost:8080复制代码

ok 启动成功... ? ##二、jenkins github相关插件安装

到jenkins页面,jenkins->系统管理->插件管理->可选插件中安装以下插件 GIT plugin GitHub plugin Post-Build Script Plug-in Xcode integration

2.1 Git私有仓库配置

1.jenkins首页 ->Credentials复制代码

以上配置好后,生成sshkeys并把你的公钥配置到git服务器 此处以开源中国为例 http://git.oschina.net/oschina/git-osc/wikis/帮助#ssh-keys

##三、jenkins JOB配置

3.1 job配置

######填写xcode编译参数

配置步骤可以逐步save,立即构建版本,看是否出错。

嗯,我也来构建测试一下。

Results at '/Users/mac/.jenkins/jobs/Youxin/workspace/build/yxios.ipa' [Release-iphoneos] $ ditto -c -k --keepParent -rsrc /Users/mac/.jenkins/jobs/>Youxin/workspace/build/Release-iphoneos/yxios.app.dSYM /Users/mac/.jenkins/jobs/>Youxin/workspace/build/yxios-dSYM.zip Finished: SUCCESS

ok,next step! ? ##四、shell到fir.im/蒲公英 #####上传到fir.im

fir已经做了jenkins的插件,具体从这篇文章看http://blog.fir.im/jenkins/复制代码
这儿有一个坑$gem install fir-cli时,由于国内的GW原因,请切换到https://ruby.taobao.com$gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/$ gem sources -l复制代码

fir上传环境搭建,请阅读

若出现安装不了,请重新安装你的ruby,brew等环境,可能用Xcode bata版的童鞋会遇到安装不了的环境不问题

安装完之后用fir命令上传

fir b path/to/workspace -o path/to/output -w -C Release -t allTargets 复制代码

到jenkins中配置一下

增加步骤->Execute shell

fir build_ipa ${WORKSPACE} -o ${WORKSPACE}/build/ -p -T YOUR_FIR_TOKEN复制代码

上面这个过于啰嗦,重新又再次编译了项目,请用下面的命令上传

fir p ${WORKSPACE}/build/mukewangios.ipa -T FIR_TOKEN复制代码

I, [2015-08-12T16:11:18.669920 #72566] INFO -- : Build Success I, [2015-08-12T16:11:18.670328 #72566] INFO -- : I, [2015-08-12T16:11:19.202879 #72566] INFO -- : Publishing app....... I, [2015-08-12T16:11:19.202924 #72566] INFO -- : ✈ -------------------------------------------- ✈ I, [2015-08-12T16:11:19.278565 #72566] INFO -- : Fetching com.mjc.yxios@FIR.im uploading info...... I, [2015-08-12T16:11:19.435970 #72566] INFO -- : Uploading app...... I, [2015-08-12T16:11:19.865897 #72566] INFO -- : Updating devices info...... I, [2015-08-12T16:11:23.962306 #72566] INFO -- : ✈ -------------------------------------------- ✈ I, [2015-08-12T16:11:23.962349 #72566] INFO -- : Fetch app info from FIR.im I, [2015-08-12T16:11:24.100364 #72566] INFO -- : Publ

?,看到以上信息,说明我们的发布到fir平台成功。 #####上传到蒲公英 蒲公英上传请仔细参阅,

curl -F "file=@/tmp/example.ipa" -F "uKey={$uKey}" -F "_api_key={$apiKey}" -F "publishRange=2" http://www.pgyer.com/apiv1/app/upload复制代码

如果curl没有安装,请安装一下

brew install curl复制代码

在我们执行fir.im上传命令中增加上传蒲公英的curl命令

curl -F "file=@${WORKSPACE}/build/yxios.ipa" \-F "uKey=你的用户key" \-F "_api_key=你的apiKey" \http://www.pgyer.com/apiv1/app/upload复制代码

保存->立即构件,waiting... 到Console output看打印log...

+ curl -F file=@/Users/mac/.jenkins/jobs/Youxin/workspace/build/yxios.ipa -F uKey=uKey -F >_api_key=aipkey http://www.pgyer.com/apiv1/app/upload % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1480k 0 0 100 1480k 0 481k 0:00:03 0:00:03 --:--:-- 481k 100 1480k 100 496 100 1480k 132 394k 0:00:03 0:00:03 --:--:-- 394k 100 1480k 100 496 100 1480k 132 394k 0:00:03 0:00:03 --:--:-- 394k {"code":0,"message":"","data":>{"appKey":"appkey","userKey":"ukey","appType":"1","appIsLastest":"1","appFileSize":"1515272","appName":"yxios","appVersion":"1.7","appVersionNo":"2.0.1","appBuildVersion":"1","appIdentifier":"com.mjc.yxios","appIcon":"b38bb809ebfa37dac81174a4e7716a26","appDescription":"","appUpdateDescription":"","appScreenshots":"","appShortcutUrl":"Dmfc","appCreated":"2015-08-12 16:58:20","appUpdated":"2015-08-12 16:58:20"}}Finished: SUCCESS

?,上传成功... 快到fir.im 蒲公英上下载看看吧

安装不了的,请在xcode中设置下证书,服务器环境安装一下证书。

###遇到/usr/bin/security list-keychains -s ERROR: No artifacts are configured for archiving 这样的错误 请设置keychains 添加构建步骤 -> Xcode证书信息 上传至Git的项目里已经配置过证书和Provisioning Profiles。 勾选Unlock Keychain 1.Keychain path 设置为 ${HOME}/Library/Keychains/login.keychain 2.Keychain password 为当前jenkins系统所在系统密码

##总结 jenkins是最近一两周接触的一个CI工具,可能测试/项目经理接触的比较多一点,iOS这一块,除了一些大厂,基本不会提自动化测试/部署/持续构件等,此文抛砖引玉,欢迎iOS/CI大神/测试大神来拍砖,本人也希望CI这一块形成一系列blog,吸引更多的爱好者一起研究,推动iOS开发界CI的发展。 如果有任何纰漏请联系我 @ 最后感谢,@ @ 对本人部署测试此平台无私的帮助。 ####参考blogs ######特别推荐 http://www.jianshu.com/p/a17167274463 http://www.jianshu.com/p/0515e2465c49 #####其他 http://www.cnblogs.com/itech/archive/2011/11/23/2260009.html https://testerhome.com/topics/2762 https://testerhome.com/topics http://blog.sina.com.cn/s/blog_63b4ee0d0101gdop.html https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project //mvn test http://www.cocoachina.com/ios/20150428/11698.html http://blog.csdn.net/xdrt81y/article/details/38755415 http://www.cnblogs.com/itech/archive/2011/11/23/2260009.html

#####平台文档 http://blog.fir.im/fir_cli/ http://www.pgyer.com/doc/api#uploadApp #####上传环境 http://www.vettyofficer.com/2013/06/how-to-install-curl-in-mac-os-x.html http://apple.stackexchange.com/questions/95855/how-to-install-curl-on-osx-with-brew

你可能感兴趣的文章
CSS:关于元素宽度与高度的讨论 系列文章(一)
查看>>
webstorm、phpstorm、idea等使用技巧记录
查看>>
腾讯内核团队发布 TCPA,为何是 OPEN 而非开源?
查看>>
Linux 用户被差别对待?无法通过 apple.com 管理 Apple ID
查看>>
芯片巨人英特尔的 Linux 开源驱动加入支持其独显的代码
查看>>
Elasticsearch批量导入数据脚本(python)
查看>>
Android Studio 3.5 Canary 12 发布
查看>>
我在 DC010 听了一场黑客版“奇葩说”|ISC2018
查看>>
js算法初窥06(算法模式03-函数式编程)
查看>>
【视频教程】微信小程序开发【一个实例】
查看>>
一看就懂的Mybatis框架入门笔记
查看>>
Rails 5.2.3 RC1 发布,Ruby Web 应用开发框架
查看>>
5月19-20日WebRTCon 2018 梳理全球WebRTC技术实践与案例
查看>>
Redux源码分析之基本概念
查看>>
ubuntu(14.04) 网路管理
查看>>
vue按需引入element Transfer 穿梭框
查看>>
Facebook 2018 年度开源回顾:新增开源项目 153 个
查看>>
JDBC的数据类型
查看>>
「镁客·请讲」Ayla米歇尔·马埃索:在物联网,我们要做一个“中心环节”
查看>>
PiFlow v0.5 发布:大数据流水线系统
查看>>