部署jenknis实现iOS自动化打包

2019-04-12  本文已影响0人  ychen3022

1、jenknis

当项目越来越多,时不时还要回归测试一下,如果一直由开发人员打包的话,实在是太降低效率了,所以自动化打包必不可少。
在自动化打包中,我选择了Jenkins,主要是因为他免费,而且可以由测试自行打包(只要我们事先配置好分支、项目名、代码地址等参数就好)。

2、环境介绍

因为希望打包任务能够长存,所以我选择将jenkins部署在一台linux服务器上面,然后将一台安装了Xcode的Mac作为其一个节点。

3、安装步骤

<1>、从 jenknis官网下载war安装包。

war安装包

<2>、 将jenkins.war安装包上传到服务器上

//root@192.168.XXX.XXX:/root/ 为你的服务器路径,根据情况自行填写
scp /Users/ychen3022/Downloads/jenkins.war root@192.168.XXX.XXX:/root/

<3>、 登录到linux服务器,并安装Jenkins

//登录到远程linux服务器
ssh root@192.168.XXX.XXX

使用ls命令查看是否有jenkins文件


jenkins文件

在war 包所在目录,执行以下命令:

java -jar jenkins.war --httpPort=8080

//想要保持后台进程运行的话,在前面加上nohup,这样关闭终端,也能继续运行
nohup java -jar jenkins.war --httpPort=8080

<4>、 在浏览器页面输入以下地址:

http://92.168.XXX.XXX:8080

这样就打开Jenkins管理页面了。
尽量使用推荐默认配置,按照页面安装流程,直到完成。


jenkins安装完成

<5>、 配置Mac电脑为jenkins的节点:系统管理->节点管理->New Node


配置节点信息

点save按钮后


配置节点后

点击“ agent.jar ”将下载一个agent.jar文件至本地
在agent.jar所在文件夹下,运行以下上图中的java -jar ...

//先cd到agent.jar所在文件夹
java -jar agent.jar -jnlpUrl http://192.168.100.185:8080/computer/ychen3022/slave-agent.jnlp -secret 0117dffc9e5227dfff6d69087e9d52913b2e5206b9ba605155d76fc01e7084d2

执行完毕,命令行会打印出日志信息
再刷新jenkins的管理页面,会发现ychen3022节点已经连接上。


ychen3022节点连接成功

<7>、jenkins就部署完成了,只需要我们配置项目的打包信息就可以了。

屏幕快照 2019-04-12 下午1.27.25.png

General主要配置一些项目说明,或者设置一些全局变量,比如项目名、环境scheme、分支等;

Source Code Management主要配置代码地址信息、分支信息;

Build中配置一些打包脚本:

//在项目所在文件目录下执行下列操作
//这里需要补充的一点操作就是:
//我们需要在创建一个目录,存放一个plist文件,plist文件中对应method和teamID两项信息
//如下面的/Users/ychen3022/xcode_build/maanshanax@163.com_build_development.plist

rm -rf build/

security unlock-keychain -p  {电脑管理者登录密码} /Users/ychen3022/Library/Keychains/login.keychain

//app_name是在上面设置的变量,指代项目名字
xcodebuild clean -workspace "./${app_name}.xcworkspace" -scheme "${app_name}" -configuration Dev -archivePath build/${app_name}.xcarchive archive -allowProvisioningUpdates
xcodebuild clean -exportArchive -archivePath build/${app_name}.xcarchive   -exportPath build  -exportOptionsPlist /Users/ychen3022/xcode_build/maanshanax@163.com_build_development.plist -allowProvisioningUpdates

//将打出来的ipa上传到服务器,后期再写网页生成对应的二维码,测试可以通过扫描二维码来安装ipa包
infoPlist="${app_name}/Info.plist"
version=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $infoPlist`
branch=$(echo ${GIT_BRANCH}|cut -d '/' -f 2)
echo $branch
scp build/${app_name}.ipa root@192.168.XXX.XXX:/home/apkdownload/dev/btxy/${env_name}-${app_name}-v${version}.ipa

配置好打包脚本就可以进行打包了。

<8>、完善
按照上面的步骤,我们可以完成打包任务,但是当电脑关机后,必须得重新运行第<5>步的后半部分工作,才能进行打包,而且终端也不能关闭。
那我们可以尝试写个脚本,让电脑开机便执行命令,使jenkins节点保活。
这样关机或者关闭终端都不会影响打包任务。

以下参考:XW_学文的Mac OS开机启动自动执行命令行

新建一个文件夹jenkinsStart,将agent.jar文件拖进来,然后新建一个jenkinsStart.sh脚本文件。

cd /Users/ychen3022/jenkinsStart

nohup java -jar agent.jar -jnlpUrl http://192.168.XXX.XXX:8080/computer/ychen3022/slave-agent.jnlp -secret 896f7c5b5eec88f30d58e53b534327e71a520a68d19ce9534f132f74385df309

在该文件夹下执行

$ chmod 777 jenkinsStart.sh

有了权限之后,右键文件,选择“显示简介”,将打开方式选择为终端打开:


设置jenkinsStart文件属性

然后添加成开机自启动,(在设置->用户与群组->登录项)的登录项中添加启动文件。

这样就完成了我们的jenkins部署啦。

上一篇下一篇

猜你喜欢

热点阅读