标签:
持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
到此为止,我们就可以选择不同的scheme进行编译不同的版本了,下面做持续集成
因为 Jenkins 的pkg安装包默认安装位置为shared文件夹,需要权限修改,pod install 无法执行sudo命令,所以放弃pkg安装。
安装之前由于运行Jenkins时会自动寻找home路径,提前设置好JENKINS_HOME
在/etc/profile
添加一行
export JENKINS_HOME="/Users/yourname/jenkins"
直接下载war包放到个人目录 /Users/yourname/jenkins
使用命名
java -jar jenkins.war --httpPort=8008 &
安装并运行
打开localhost:8008 进入到jenkins->系统管理->管理插件安装两个插件 cocoapod 和 xcode,一个是用来管理依赖库的,一个是进行xcode编译选项设置的
这里有一个选项 xcode schemes file,你可以选择填写你在项目利配置好的 xxxx-Beta
这样就可以打包不同版本的ipa了
.ipa filename pattern ipa文件名称,写到跟jenkins项目名一样,便于区分,而且下面python脚本也会用到定位该文件
target ->Configuration 这里可以根据配置写ForBeta ,Debug, Release
添加构建步骤 Execute Shell 进行单元测试
先安装ocunit2junit插件,生成jenkins可见的测试报告,然后添加shell
if [-d "test-reports"]
then
rm -rf test-reports
fi
xcodebuild test -workspace yourProject.xcworkspace -scheme yourscheme -sdk iphonesimulator | ocunit2junit
使用python脚本进行pgy上传和通知邮件发送
添加构建步骤 Excute Shell
python ${JENKINS_HOME}/workspace/pgyUpload/pgyDevUpload.py
脚本 中可以做如下修改,进行不同的版本分辨上传道不同的pgy上
if ‘jenkins-MNCats-Dev‘ in jenkins_build_number:
uKey = ‘开发key‘
_api_key = ‘开发api‘
projectName = ‘与你在jenkins中写的项目名称相同,例:xxx-Dev‘
print projectName
pass
if ‘jenkins-MNCats-Alpha‘ in jenkins_build_number:
uKey = ‘alphakey‘
_api_key = ‘alphaapi‘
projectName = ‘与你在jenkins中写的项目名称相同,例:xxx-Alpha‘
print projectName
pass
if ‘jenkins-MNCats-AppStore‘ in jenkins_build_number:
uKey = ‘AppStore版本pgy key‘
_api_key = ‘AppStore版本api key‘
projectName = ‘与你在jenkins中写的项目名称相同,例:xxx-AppStore‘
print projectName
pass
def get_ipa_file_path():
ipa_file_workspace_path = ‘/Users/yourname/jenkins/workspace/‘+projectName+‘/build/‘+projectName+‘.ipa‘
if os.path.exists(ipa_file_workspace_path):
return ipa_file_workspace_path
ok,到此位置我们基本达成了我们的目的,每天鼠标一点,就可以交版本下班了~
参考:
* http://www.jianshu.com/p/269d8d66472d
* http://nickcheng.com/post/unique-icons-for-your-app-in-different-state-in-xcode5-debug-release
Jenkins+cocoapods+pgy+多版本 持续集成
标签:
原文地址:http://blog.csdn.net/xiaocai159753/article/details/51327137