前言
Ci系统的引入,给我们广大程序猿带来福音
环境:
jenkins.2.6.0.3
Android studio 2.3.3
Gradle 3.3
Jdk 1.8
Git /svn 最新版
Window 7 64bit
1.配置jeckins
选择对应平台(为什么没选择最新版本,测试新版有些配置问题未能解决。退而求其次了)
下面步骤跟着引导就可以走完。直到自动打开
注意:安装方式选择推荐安装,这样省去自己找插件的麻烦
下面步骤跟着引导就可以走完。直到自动打开
注意:安装方式选择推荐安装,这样省去自己找插件的麻烦
设置jenkins环境
进入设置界面,因为这里介绍gradle 方式构建,对于maven 和 ant 构建方式请自行学习
点击保存。Jenkins 环境配置完毕接着进入jenkins 首页
建立项目
点击ok进行Job设置界面,设置构建脚本,构建资源,构建一系列参数,需要根据具体需求进行配置。
配置jenkins构建参数
这里有6个小tab对应构建的不同过程
.首先源码管理这里git,svn 两种
这里选择github上源码进行测试。地址:https://github.com/yatou252303/Nydialog.git
接下来填写构建触发器,如果使用默认则需要手动触发构建。如果根据jenkins 定义触发规则,则可以方便进行自动化构建。
注意:点击后面问号,会有较为详细的介绍针对。不同的选项。
构建环境
使用默认配置
构建
选择在系统配置gradle 别名, 写构建脚本,这里为了简单,只有一个 build命令。
配置执行构建文件
${WORKSPACE}/app/build.gradle
Force GRADLE_USER_HOME to use workspace 勾选
构建完成了,还可以做一些额外的工作,比如发布到具体站点,或者内测平台,这里以蒲公英发布平台为例。(需要注册账户)
打包后上传蒲公英
实现思路:
通过shell脚本调用蒲公英api上传
1. 新建shell脚本
比如:uploadApk.sh,存放在app/build.gradle同级目录
#!/bin/sh#MAIN_MODULE指AndroidStudio工程目录下面主module#打包用地址
MAIN_MODULE="."#单独测试用地址#MAIN_MODULE="./app" #蒲公英API账号
PGYER_USER_KEY="登录你的蒲公英账号查看[https://www.pgyer.com/doc/api#uploadApp]"
PGYER_API_KEY="登录你的蒲公英账号查看[https://www.pgyer.com/doc/api#uploadApp]"#APK路径
APK_PATH="${MAIN_MODULE}/build/outputs/apk"
echo "=============================================="#echo "current path: `pwd`"#echo "APK_PATH=${APK_PATH}"
APK_LIST=`ls -t ${APK_PATH}`#echo "${APK_LIST}"#查找 最新的apk包for APK_FILE in ${APK_LIST}; do
APK_NAME=${APK_FILE}
#echo "$APK_FILE"
break;doneif [ -n "$APK_NAME" ]; then # 判断是否为空
echo "上传 $APK_FILE 到蒲公英"
#上传至蒲公英 updateDescription(版本描述)
RESULT=$(curl -F "file=@${APK_PATH}/${APK_NAME}" -F "uKey=${PGYER_USER_KEY}" -F "_api_key=${PGYER_API_KEY}" http://www.pgyer.com/apiv1/app/upload)
echo "蒲公英返回 $RESULT"
# 发邮件
echo "${RESULT}" | mail -s "${APK_NAME}已更新到蒲公英" you_mail@qq.com
fi
配置执行脚本触发器
注意:一定要选择window batch Command,否则无法上传到蒲公英。
构建后操作
选择默认,当然可以配置邮箱地址,构建成功后会发送邮件,经测试这个的发送邮件功能不能使用。
好了上面完成,从jenkins的下载,安装,到配置git资源库,配置构建脚本。剩下的就是执行构架命令。强烈推荐,先在android studio 命令行窗口中执行build命令,排除下错误。然后再jenkins中构建。一般来说在android studio中能build成功的在jenkins中也没有问题
追加:上面介绍了git的,顺嘴说下svn的配置。不同的地方就是svn需要认证,也就是账户密码的。
上面介绍了git的,顺嘴说下svn的配置。不同的地方就是svn需要认证,也就是账户密码的。
点击 add,弹出验证账户密码的框。验证通过,回到这个界面在Credentials 选项卡中可以进行选择。
Jenkins有个好处,输入错误的账户密码会报红提示。
好了,说了一大串,不知道能看明白多少?有疑问欢迎留言提问。
效果:
自动发布到蒲公英上的。
扩展
对shell 脚本进行扩展
runoob http://www.runoob.com/linux/linux-command-manual.html
上面网站介绍一些语法
调试的话,这里使用gitbash进行调试
weichyang@weichyang-PC MINGW64 /f/jenkins.2.6.0.3/workspace/updateshell
$ ./updatedemo.sh ../nuoyuan_2.6.4/app/build/outputs/apk
bash: ./updatedemo.sh: No such file or directory
weichyang@weichyang-PC MINGW64 /f/jenkins.2.6.0.3/workspace/updateshell
$ ./needparameter.sh ../nyDialog/app/build/outputs/apk
==============================================
APK_PATH=../nyDialog/app/build/outputs/apk
app-release-unsigned.apk
app-debug.apk
app-release.apk
上传 app-release.apk 到蒲公英
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
94 9377k 0 0 94 8896k 0 623k 0:00:15 0:00:14 0:00:01 618k
curl: (56) Recv failure: Connection was reset
蒲公英返回
./needparameter.sh: line 35: mail: command not found
./needparameter.sh: line 37: mail: command not found
weichyang@weichyang-PC MINGW64 /f/jenkins.2.6.0.3/workspace/updateshell
$ ^C
weichyang@weichyang-PC MINGW64 /f/jenkins.2.6.0.3/workspace/updateshell
引用
1.gradle 脚本配置 http://blog.csdn.net/yanbober/article/details/49314255
2.build.gradle 脚本配置 http://blog.csdn.net/lxmy2012/article/details/76299166
3.jenkins 配置脚本 http://blog.csdn.net/gao_chun/article/details/48218545