Jenkins+Shell+gym+蒲公英实现自动化集成

目标:自动更新代码+打包+上传蒲公英+发二维码到测试人员的邮箱

1、Jenkins的介绍、安装不多说,直接上配置截图和说明

系统配置:

《Jenkins+Shell+gym+蒲公英实现自动化集成》 1

项目配置:

《Jenkins+Shell+gym+蒲公英实现自动化集成》 2

《Jenkins+Shell+gym+蒲公英实现自动化集成》 3
《Jenkins+Shell+gym+蒲公英实现自动化集成》 4
《Jenkins+Shell+gym+蒲公英实现自动化集成》 5

2、Shell 脚本和说明,直接上源码

build_using_gym.sh

!/bin/bash

计时

SECONDS=0

假设脚本放置在与项目相同的路径下

project_path=$(pwd)

取当前时间字符串添加到文件结尾

now=$(date +”%Y_%m_%d_%H_%M_%S”)

指定项目的scheme名称

scheme=”SnapEcgDoctor”

指定要打包的配置名,位于XCode 设置下面,默认有‘Debug’和‘Release’两个,也可以自己创建多个来区分不同环境的版本

configuration=”Release”

指定打包所使用的输出方式,目前支持{app-store, ad-hoc, enterprise, development}即xcodebuild的method参数

export_method=’development’

代码根目录

baseDir=$(cd “$(dirname “$0″)”; pwd)
echo “Base dir is: ${baseDir}”

svn 操作

svn cleanup ${baseDir}

svn update ${baseDir} #svn更新项目文件

cocoapod

cd ${baseDir}

pod install –verbose –no-repo-update

指定项目地址

workspace_path=”${baseDir}/SnapEcgDoctor.xcworkspace”

指定输出路径

output_path=”${baseDir}/${configuration}/${now}”

指定输出归档文件地址

archive_path=”$output_path/${configuration}_${now}.xcarchive”

指定输出ipa地址

ipa_path=”$output_path/${configuration}_${now}.ipa”

指定输出ipa名称

ipa_name=”${configuration}_${now}.ipa”

获取执行命令时的commit message

commit_msg=”$1″

输出设定的变量值

echo “===workspace path: ${workspace_path}===”
echo “===archive path: ${archive_path}===”
echo “===ipa path: ${ipa_path}===”
echo “===export method: ${export_method}===”
echo “===commit msg: $1===”

先清空前一次build

gym –workspace ${workspace_path} –scheme ${scheme} –clean –>configuration ${configuration} –archive_path ${archive_path} –export_method >${export_method} –output_directory ${output_path} –output_name ${ipa_name}

上传到fir

fir publish ${ipa_path} -T fir_token -c “${commit_msg}”

自动化上传蒲公英

蒲公英上的User Key

uKey=”e91380a7110fc3852558bda4374f4f6b”

蒲公英上的API Key

apiKey=”##################”, 项目的apikey值

执行上传至蒲公英的命令

echo “++++++++++++++upload+++++++++++++”
curl -F “file=@${ipa_path}” -F “uKey=${uKey}” -F “_api_key=${apiKey}” >http://www.pgyer.com/apiv1/app/upload

输出总用时

echo “===打包+上传蒲同英成功. 总耗费时间: ${SECONDS}s===”

3、补充说明

我没有使用Jenkins里面的XCode插件,而是用gym直接打包,这是一个ruby环境。gym+ruby安装请百度。

4、打包结果展示

《Jenkins+Shell+gym+蒲公英实现自动化集成》

《Jenkins+Shell+gym+蒲公英实现自动化集成》

《Jenkins+Shell+gym+蒲公英实现自动化集成》

《Jenkins+Shell+gym+蒲公英实现自动化集成》

《Jenkins+Shell+gym+蒲公英实现自动化集成》

4、填坑说明

大部分的坑都会出现在代码里,如果发现本地代码和Jenkins下载的代码不同,而且不知道如何解决,那就拷贝一份本地代码进去!
比如我就遇见pod的Header文件夹在Jenkins下面变成了文本,只能替换掉~~~~~~~~~~~
如果遇见了cocoapods问题,就用pod setup解决吧!如果一次不行,那就两次。
其他问题,网上都有答案,我遇见的问题连外国人都没有见过,就不用搜了。

    原文作者:叫我干苦力的码农
    原文地址: https://www.jianshu.com/p/3de98d44f75c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞