2020-04-27

Android打包jenkins教程

主要内容

  • 基于SVN或Git 测试项目连接

  • Android项目参数化自动构建

  • 自动将APK上传至蒲公英 https://www.pgyer.com

  • 自动发Email到指定邮箱提示构建结果

上图

[图片上传失败...(image-8abccb-1588036714983)]

安卓必备插件下载

安装插件:

插件名 作用
build-name-setter 修改构建名称
description setter plugin 修改构建目录的描述
Email Extension Template Plugin Email模板编辑
Locale plugin 修改Jenkins默认语言
Timestamper 动态获取时间
Upload to pgyer 将APK上传到蒲公英
  • 安装插件

[图片上传失败...(image-ecf839-1588036714983)]

选择
[图片上传失败...(image-f7de71-1588036714983)]

两种方法安装

1.选择可选插件安装
[图片上传失败...(image-1495c-1588036714983)]
搜索之后直接点击直接安装就行
[图片上传失败...(image-7d5243-1588036714983)]


2.如果出现代理错误,或者安装失败可以通过jenkins镜像网站下载
jenkins镜像网站连接地址
下载完成的后缀是hpi文件
[图片上传失败...(image-bbf129-1588036714983)]

下载完成之后点击高级上传本地插件即可
[图片上传失败...(image-b3f348-1588036714983)]

系统管理员的邮箱一定要设置,这是个坑,要是不设置,你的邮箱怎么配置都不会触发,Jenkins URL则是访问地址安装的时候会要求设置,我这里是设置成本机电脑ip,这样局域网内别的电脑也可以访问。

[图片上传失败...(image-ec4897-1588036714983)]
[图片上传失败...(image-1c6da0-1588036714983)]
但是服务器好像有bug 无法使用ssl发送smtp邮件,好像需要修改源代码或者更换jenkins版本
[图片上传失败...(image-64030f-1588036714983)]

备注这些插件我都已经安装了

开始构建项目

首先环境变量的设置
设置服务器端安卓的环境变量已经设置
[图片上传失败...(image-9f43b3-1588036714983)]
如果你的项目需要跟新android SDK 可以登录服务器运行

android list sdk --all

如下
[图片上传失败...(image-8c6ba4-1588036714983)]

选择你需要
如果需要安装多个软件包进行更新安装,比如:

android update sdk -u -a -t 1,2,3,4,..,n 
  • 选择自由项目,输入项目名字
  • [图片上传失败...(image-f3a5d5-1588036714983)]

配置项目开始

  1. 选择源码管理,填入你的git项目地址
    [图片上传失败...(image-2bbe9c-1588036714983)]

2.然后配置构建,选择Invoke Gradle script
[图片上传失败...(image-c657f4-1588036714983)]

  1. 点击展开Tasks,然后输入
clean
assembleDebug
--stacktrace
--debug
  1. 输入完上面内容后,展开高级内容,勾选[图片上传失败...(image-532737-1588036714983)]
    windows一定要勾选,不然构建失败,这个选项就相当于Android Studio的Gradle的缓存目录,如果项目多,懒得勾选,则可以在第一步的系统设置中的环境变量中配置GRADLE_USER_HOME环境,本地找个文件夹即可(最好使用Android Studio的Gradle默认缓存目录)
    如下
    [图片上传失败...(image-9a046c-1588036714983)]

5.点击应用,保存,然后点击[图片上传失败...(image-5acb-1588036714983)]
即可进行构建,如图构建成功,可以进去查看日志,或者到工作空间去查看生成的apk包

配置参数化构建

选择[图片上传失败...(image-c709ca-1588036714983)]
这里可自由配置任何参数
[图片上传失败...(image-1e9923-1588036714983)]

部分参数的翻译

参数名 翻译
Boolean Parameter bool值 true或者false
Choice Parameter 可以选择的参数,一定要注意每个选项换行
String Parameter 字符串参数
  1. 参数配置完成,可以自己持续添加自己需要的参数,也可以自己更改参数名称,但是更改的参数名称要和Android项目中gradle.properties文件中的参数名对应,有些需要默认参数,签名文件为了安全尽量不要填写默认密码
    例如哥伦比亚项目gradle.properties配置如下与你设置的参数进行一一对应
    [图片上传失败...(image-573d31-1588036714983)]

  2. 在构建中,把Tasks中的Debug改成${BUILD_TYPE}调用刚刚配置的参数,勾选Pass all job parameters as Project properties 把参数注入到项目中
    [图片上传失败...(image-a391bf-1588036714983)]

注意:如果不勾选这个,jenkins不会注入所设置的参数

  1. 点击应用,保存,会发现项目首页的立即构建变成了Build with Parameters,点击则出现右侧参数列表,选择release尝试构建。
    [图片上传失败...(image-148e53-1588036714983)]

  2. 继续优化配置 设置构建触发器SCM
    [图片上传失败...(image-fbfdf4-1588036714983)]
    每隔10分钟检查资源库是否有提交更新,有更新则进行构建
    */10 * * * *

  3. 将APK包上传到蒲公英https://www.pgyer.com
    [图片上传失败...(image-23037d-1588036714983)]

[图片上传失败...(image-487eb9-1588036714983)]
输入你的蒲公英的userkey和appkey
[图片上传失败...(image-5bc612-1588036714983)]

打包目录和文件
[图片上传失败...(image-bbc0fd-1588036714983)]
支持通配符搜索。
上面表示,在工作目录下面app目录下build目录下outputs目录下apk目录下
文件名
xxx/xxxxxxxxxxx.apk

  1. 输入参数
    [图片上传失败...(image-6b27fb-1588036714983)]

  2. 设置构建完成之后的显示二维码
    [图片上传失败...(image-67d861-1588036714983)]
    填入下面


${appName}_ ${appVersion}

下载地址:APK下载链接

可以使用的参数
[图片上传失败...(image-70667c-1588036714983)]

  1. 建完成后发邮件

在构建后操作添加Editable Email Notification,默认部分不需要更改,因为内容在配置系统设置的时候已经配置好,如果要动态增加接收人的邮箱,在Project Recipient List 中加入邮箱即可用 ,隔开,点击底部的Advanced Settings设置触发条件。即可发送邮件到指定邮箱。可以根据自己的需要配置邮箱触发事件,如果不配置则不会发送邮箱
[图片上传失败...(image-aaad23-1588036714983)]

最好使用阿里云镜像进行设置maven

[图片上传失败...(image-eb2d30-1588036714983)]
不然很多时候编译日志会爆404 或者超时

配置安卓gradle
[图片上传失败...(image-11f39a-1588036714983)]
build文件
[图片上传失败...(image-755825-1588036714983)]

上传keystore文件到服务器

使用

//local_folder 本地文件夹路径 remote_username 远程服务器登录的账户 root , remote_ip 服务器ip, remote_folder服务
//器上传的路径
scp -r local_folder remote_username@remote_ip:remote_folder 

目前我已经在这个路径/media/new/fiberhomekey下上传了一个key
[图片上传失败...(image-dbd9ef-1588036714983)]

可以直接使用

 storePassword 'smartnetwork'
 keyAlias = 'smartnetwork'
 keyPassword 'smartnetwork'

[图片上传失败...(image-37eab5-1588036714983)]

教程

你可能感兴趣的:(2020-04-27)