jenkins+Android+gradle持续集成
本文Android自动化打包采用jenkins+gradle+upload to pyger的方式来实现,job执行完后只需要打开链接扫描二维码即可下载apk。
一、环境准备
1.下载Android SDK(最好下载开发工具Android Studio)
2.安装jenkins
二、配置jenkins变量
配置Android自动打包之前需要下载两个插件,gradle和upload to pyger。
1.安装gradle插件:系统管理->管理插件
2.安装upload_to_pyger插件:系统管理->管理插件
3.配置gradle插件,gradle版本根据需要选择,点自动安装:系统管理->全局工具配置
4.设置环境变量:android-sdk 和 java 的环境变量。(1)键:ANDROID_HOME 值:D:\Program Files (x86)\Android\android-sdk(上文下载的SDK)。(2)键:JAVA_HOME 值:D:\Program Files\Java\jdk1.8.0_181
三、配置jenkins job
1.新建一个job,选择“构建一个自由风格的软件项目”
2.源码管理配置git地址信息。
3.构建选择“invoke Gradle script”
4.选择Gradle所需的版本号
- # 清除app目录下.apk文件
- app:clean
- # 打包Release版本的包
- app:assembleRelease
- # gradle常用命令
- gradle clean # 清除/app目录下的build文件夹
- gradle build # 检查依赖并编译打包,Debug和Release都打出来
- gradle assembleDebug # 编译并打Debug包
- gradle assembleRelease # 编译并打Release的包
- gradle installRelease # Release模式打包并安装
- gradle uninstallRelease # 卸载Release模式包
5.继续添加构建步骤:
6.Upload to pgyer
这里参考GitHub上的参数定义:
需要填写的字段 | 字段的解释 |
---|---|
pgyer uKey | (APIV1必填,APIV2无此参数) 用户Key,用来标识当前用户的身份,对于同一个蒲公英的注册用户来说,这个值在固定的。 点击获取_ukey |
pgyer api_key | (必填) API Key,用来识别API调用者的身份, 如不特别说明,每个接口中都需要含有此参数。 对于同一个蒲公英的注册用户来说,这个值在固定的。 点击获取_api_key |
scandir | (必填) 需要上传的apk/ipa文件所在的文件夹或者父文件夹,当前默认路径是 ${WORKSPACE} ,它代表了当前项目的绝对路径。这个功能的实现使用了ant框架的DirectoryScanner类,点击查看DirectoryScanner类, 这个字段就是DirectoryScanner类中的basedir方法的参数点击查看basedir方法 |
file wildcard | (必填) 需要上传的apk/ipa文件的名字,支持通配符,就像这样: **/Test?/*.apk, 这个功能的实现使用了ant框架的DirectoryScanner类,点击查看DirectoryScanner类, 这个字段就是DirectoryScanner类中的includes方法的参数,点击查看includes方法 |
installType | (选填) 应用安装方式,值为(1,2,3)。1:公开,2:密码安装,3:邀请安装。 默认为1公开 |
password | (选填) 设置App安装密码,如果不想设置密码,请传空字符串,或不传。 |
updateDescription | (选填) 版本更新描述,请传空字符串,或不传。 |
qrcodePath | (选填) 如果你需要下载蒲公英返回的二维码,那么这里填写二维码的存储路径,如果你不需要下载,那么你不需要在这里填写任何内容。 |
envVarsPath | (选填) 如果你想存储蒲公英返回的上传信息,那么这里填写保存信息的文件路径,如果你不需要保存,那么你不需要在这里填写任何内容。 |
GitHub链接:https://github.com/jenkinsci/upload-pgyer-plugin/blob/master/README_cn.md
最后我的配置如下:
上传完成后在蒲公英平台找到下载链接,以后每次构建后只需要打开链接就能下载apk。
7.构建成功
打开下载链接,可以看到apk在2分钟前上传了,扫描二维码即可下载APP。
四、总结
在配置Android APP自动化打包时候踩过很多坑,SDK里有些build tool和api没有下全,所以我建议下载AS,遇到问题自我分析和调试。
jenkins+Android+gradle持续集成的更多相关文章
- Linux下Jenkins+git+gradle持续集成环境搭建
Linux下Jenkins+git+gradle持续集成环境搭建 来源:IT165收集 发布日期:2014-08-22 21:45:50 我来说两句(0)收藏本文 一.项目介绍 和 linux ...
- Jenkins Android APP 持续集成体系建设二—自动部署、执行测试任务,关联打包任务
经过上一遍博客我们知道了怎么使用Jenkins自动打包,但打完包之后,我们还需要对新包进行回归测试,确定新包有没有问题,然后才能发布包,那么,话不多说,我们先来新建个自动化回归测试任务 新包自动化回归 ...
- Jenkins构建Android项目持续集成之findbugs的使用
Findbugs简介 关于findbugs的介绍,可以自行百度下,这里贴下百度百科的介绍.findbugs是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题 ...
- 基于 Jenkins 快速搭建持续集成环境
什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火 ...
- Xamarin.Android VSTS 持续集成
这些天做了一个基于 VSTS 的 Xamarin.Android的持续集成,这里分享下 Build Agent 环境需求 DotNetFramework msbuild visualstudio An ...
- jenkins + Git 搭建持续集成环境
持续集成通过自动化构建.自动化测试以及自动化部署加上较高的集成频率保证了开发系统中的问题能迅速被发现和修复,降低了集成失败的风险,使得系统在开发中始终保持在一个稳定健康的集成状态.jenkins是目前 ...
- Jenkins+Gitlab搭建持续集成(CI)环境
利用Jenkins+Gitlab搭建持续集成(CI)环境 Permalink: 2013-09-08 22:04:00 by hyhx2008in intern tags: jenkins gitla ...
- 基于 Jenkins 快速搭建持续集成环境--转
源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...
- Jenkins 快速搭建持续集成环境
持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域 ...
随机推荐
- Django跨域(前端跨域)
前情回顾 在说今天的问题之前先来回顾一下有关Ajax的相关内容 Ajax的优缺点 AJAX使用Javascript技术向服务器发送异步请求: AJAX无须刷新整个页面: 因为服务器响应内容不再是整个页 ...
- redis主从复制详述
一.主从复制详述 原理其实很简单,master启动会生成一个run id,首次同步时会发送给slave,slave同步命令会带上run id以及offset,显然,slave启动(初次,重启)内存中没 ...
- CQOI2018 简要题解
破解D-H协议 列个式子会发现是BSGSBSGSBSGS的模板题,直接码就是了. 代码: #include<bits/stdc++.h> #include<tr1/unordered ...
- 2019.02.16 bzoj5466: [Noip2018]保卫王国(链分治+ddp)
传送门 题意简述: mmm次询问,每次规定两个点必须选或者不选,求树上的带权最小覆盖. 思路: 考虑链分治+ddpddpddp 仍然是熟悉的套路,先考虑没有修改的状态和转移: 令fi,0/1f_{i, ...
- jquery print属性设置
一,需求背景 项目中遇到打印功能,想实现完美的打印功能,对元素进行操作等,可以使用jquery print 插件. 二,依赖文件 git地址请戳这里 1,jquery 2,jquery.print- ...
- 项目中使用同一dll的不同版本
在一个项目中,因为使用了一些插件,这些插件使用了不同版本的log4net,有1.2版本,有2.0版本的.当运行的时候发生冲突. 解决办法:在config中加入如下的配置 <dependentAs ...
- javascript-浏览器消息提醒
如何让用户在浏览器最小化的状态下也能及时的收到消息提醒呢? 这个问题作为webRd是要正面面对的. 大约可分两种场景:一种是类似桌面通知的形式还有一种是类似QQ提醒(在系统任务栏闪烁随后高亮);接下来 ...
- HTML+CSS实现页面豆腐块布局和图片居中
<!DOCTYPE html> <html> <head lang="en"> <meta http-equiv="Conten ...
- AndroidStudio制作个人资料界面模块以及SQLite数据库的使用
前言 大家好,给大家带来AndroidStudio制作个人资料界面模块以及SQLite数据库的使用的概述,希望你们喜欢 学习目标 掌握SQLite数据库的使用,能够实现用数据库来保存用户的信息: 学会 ...
- Android之ListView,AsyncTask,GridView,CardView,本地数据存储,SQLite数据库
版权声明:未经博主允许不得转载 补充 补充上一节,使用ListView是用来显示列表项的,使用ListView需要两个xml文件,一个是列表布局,一个是单个列表项的布局.如我们要在要显示系统所有app ...