实现的效果如图:
安卓:
IOS:
功能说明:
因为搭建平台写了一系列博文,这里作一个总结与整理
具体的配置:
首先jenkins需要的插件:
- build-name-setter:用于修改Build名称
- description setter plugin:用于在修改Build描述信息,在描述信息中增加显示QRCode(二维码)
- Build Name and Description Setter
- Git Parameter 参数化构建分支
1.MAC搭建jenkins
- 注意:直接下载
war
包, 不要下载Mac OS X
,
Tips:
最好是把jenkins.war包放在tomcat中运行,这样比较方便配置开机自启动,
如果使用java命令启动jenkins,每次开机都要使用命令去启动会很麻烦
2.jenkins创建测试job
3.配置与gitlab连接,别忘记在jenkins宿主机配置gitlab的host
4.构建-打包脚本
1 ## !/bin/sh 2 ## 项目名 3 TARGET_NAME="5i5jAPP" 4 ## xcworkspace文件所在目录 5 TARGET_PATH="5i5jWorkspace/5i5jAPP" 6 ## Scheme名 7 SCHEME="5i5jAPP" 8 ##======================= 9 ## 编译类型 10 BUILD_TYPE=${ENV} 11 ## 当前目录 12 SORCEPATH=${WORKSPACE} 13 ## workspace名 14 SPACE=${WORKSPACE}/${TARGET_PATH}/${TARGET_NAME}.xcworkspace 15 ##xcarchive文件的存放路径 16 ARCHIVEPATH=$SORCEPATH/build/$SCHEME.xcarchive 17 ## ipa文件的存放路径 18 EXPORTPATH=$SORCEPATH/build/$SCHEME 19 ## ExportOptions.plist文件的存放路径 20 EXPORTOPTIONSPLIST=$SORCEPATH/build/ExportOptions.plist 21 ## 导出后的ipa路径 22 EXPORTPATHIPA=$SORCEPATH/build/$SCHEME/$SCHEME.ipa 23 24 25 echo -e "============First Build Clean============" 26 ## 清理缓存 27 xcodebuild clean -workspace $SPACE -scheme ${SCHEME} -configuration ${BUILD_TYPE} 28 29 echo -e "============Build Clean============" 30 ## 输出关键信息 31 echo -e " TARGET_NAME : ${TARGET_NAME}" 32 echo -e " BUILD_TYPE : ${BUILD_TYPE}" 33 echo -e " SORCEPATH : ${SORCEPATH}" 34 echo -e " ARCHIVEPATH : ${ARCHIVEPATH}" 35 echo -e " EXPORTPATH : ${EXPORTPATH}" 36 echo -e " EXPORTOPTIONSPLIST : ${EXPORTOPTIONSPLIST}" 37 38 echo -e "============Build Archive============" 39 40 ## 导出archive包 41 xcodebuild archive -workspace ${SPACE} -scheme ${SCHEME} -archivePath $ARCHIVEPATH 42 43 echo -e "============Build Archive Success============" 44 45 echo -e "============Export IPA============" 46 47 ## 导出IPA包 48 xcodebuild -exportArchive -archivePath $ARCHIVEPATH -exportPath ${EXPORTPATH} -exportOptionsPlist ${EXPORTOPTIONSPLIST} 49 50 echo -e "============Export IPA SUCCESS============" 51 52 ## 编译完成时间 20181030_0931 53 BUILD_DATE="$(date +‘%Y%m%d_%H%M‘)" 54 55 ## info.plist路径 56 PROJECT_INFOPLIST_PATH="${SORCEPATH}/${TARGET_PATH}/${TARGET_NAME}/Info.plist" 57 ## 取版本号 58 BUNDLESHORTVERSION=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" "${PROJECT_INFOPLIST_PATH}") 59 ## 取build值 60 VERSION=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${PROJECT_INFOPLIST_PATH}") 61 ## ipa更名规则 项目名V版本_年月日_时分 62 IPANAME="${TARGET_NAME}V${BUNDLESHORTVERSION}_${BUILD_DATE}.ipa" 63 ## 更名后ipa路径 64 EXPORTPATHNEWIPA=$EXPORTPATH/$IPANAME 65 66 echo -e "============Export end :${BUILD_DATE}============" 67 echo -e "============IPA Old Name: ${EXPORTPATHIPA}============" 68 echo -e "============IPA New Name: ${EXPORTPATHNEWIPA}============" 69 70 ## IPA更名 71 cp $EXPORTPATHIPA $EXPORTPATHNEWIPA 72 73 echo -e "============Create New Name Success============" 74 75 ## 删除老IPA 76 ##rm $EXPORTPATHIPA 77 78 ##echo -e "============Delete Old Name Success============"
5.将ipa文件上传蒲公英
参照:
6.构建成功,在构建历史中展示二维码
jenkins插件set build description使用规则
7.收集编译成功物
8.自定义build名字
在Build History
列表中,构建任务的名称默认显示为按照build次数递增的BUILD_NUMBER
。有时候我们可能想在build名称中包含更多的信息,例如包含当次构建的SCHEME
和CONFIGURATION
,这时我们就可以通过修改BuildName
实现。
Jenkins默认不支持BuildName
设置,但可通过安装build-name-setter
插件进行实现。安装build-name-setter
插件后,在配置页面的Build Environment
栏目下会出现Set Build Name
配置项,然后在Build Name
中就可以通过环境变量参数来设置build名称。
例如,要将build名称设置为上面截图中的StoreCI_Release_#130
样式,就可以在Build Name
中配置为${SCHEME}_${CONFIGURATION}_#${BUILD_NUMBER}
。
除了在Build Name
中传递环境变量参数,build-name-setter
还可以实现许多更加强大的自定义功能,大家可自行探索。
9.通过git parameter动态选择仓库中的分支进行打包
参照:
jenkins-参数化构建(三)插件:Git Parameter
https://www.cnblogs.com/zhaojingyu/p/9862443.html
遇到的问题及解决办法:
搭建jenkins:
初次打开jenkins页面一片空白的解决办法
其它配置:
JENKINS针对不同项目组对用户进行权限分配
感谢大佬:
提供了很多思路:
https://debugtalk.com/post/iOS-Android-Packing-with-Jenkins/
原文地址:https://www.cnblogs.com/kaerxifa/p/11221267.html