Android使用Jenkins自动化构建测试打包apk
Jenkins这东西搭建起来真是一点也不省心啊,看着别人的教程摸着石头过河,配置的东西有点多啊,稍有不慎,就构建不成功啦!即使步骤跟别人一样也会报各种乱七八糟的错误啊哈哈~~这东西只能佛系搭建~~在经历几十次的随缘构建之后,终于构建成功啦~~好感人!眼泪掉下来。。。。。。在此做下记录,造福广大群众!阿弥陀佛~~废话少说,且看如下操作:
下载Jenkins并安装
官网下载地址:https://jenkins.io/download
我们下载如图所示Window版本,下载下来是个.zip的压缩包,我们解压一下得到如下图所示文件:
双击即可开始安装,一直Next,即可安装完成。
环境变量配置
- Java环境配置
- Android SDK环境配置
右键此电脑-属性-高级系统设置-环境变量
在系统变量中添加 :
变量名 JAVA_HOME
变量值 E:\Java\jdk8 (路径根据自己实际的java安装目录选择)
变量名 ANDROID_HOME
变量值 E:\Android\SDK (路径根据自己实际的java安装目录选择)
然后在系统的Path变量中添加 :%Java_Home%\bin
以上是Java环境的基本配置,作为一名Android开发攻城狮应该都知道基本操作。接下来就是重头戏啦!!!
Jenkins配置
安装完jenkins一般会自动在浏览器中打开,没有的话在浏览器输入 localhost:8080 或者 127.0.0.1:8080 页面出来后会提示选择安装插件,第一个是默认推荐的插件,第二个是自己选择要安装的插件
我们直接选默认的就好,点击第一个坐等jenkins自动安装插件
插件安装后需要创建你的账号
创建完就可以登录Jenkins控制台啦!
点击左侧 系统管理-系统设置
来到如下设置页面:
点开主目录右边的高级设置,修改一下工作空间根目录(路径任意,自己知道就行),若不改,aapt编译时会报错,因为windows版本默认的根目录在C盘底下路径过长
往下拉配置全局属性,勾选环境变量,添加如下键值对
为什么说GRADLE_USER_HOME字段要固定写呢,因为要和Gradle的配置字段一致,否则编译会报错,如果这里不进行配置Gradle会使用默认的目录,会因为默认目录路径太长导致编译报错,是不是很坑!!!
配置完点击左下角保存按钮保存配置。
回到主页面点击左侧 新建任务
输入一个任务名称,选择构建一个自由风格的软件项目,点击确定
这样在 我的视图 里就能看到创建的任务啦,点击任务,进入任务详细页面
点击配置,进行构建前的详细配置,先配置普通项General,勾选Github prooject,设置远程仓库地址,以Github为例:
然后设置 源码管理 勾选Git,添加Github项目地址,你的Github账号密码
然后设置 构建触发器 (非必需设置)设置了只是多了一种构建方式,可以勾选 触发远程构建 ,然后设置一个身份验证令牌,即可通过浏览器访问链接触发构建
如红色方框所示,有两种拼接链接的方式触发构建,你可以在浏览器中输入 localhost:8080/me/my-views/view/all/job/Test/build?token=123456 或者 /buildWithParameters?token=123456 来触发构建。
也可以勾选Poll SCM,设置每隔一段时间自动构建,我设置了每小时构建一次,如下图所示
语法参考如下:
接下来设置 构建 点击增加构建步骤,选择Invoke Gradle script
勾选Invoke Gradle,选择gradle
Tasks 填写 clean build 命令
最后设置 构建后操作 点击增加构建后操作步骤,选择Archive the artifacts
填入正则表达式路径,匹配用于存档的apk
app/build/outputs/release/*.apk的意思是匹配app/build/outputs/release路径下所有拓展名为.apk的安装包,看这路径是不是很熟悉,其实就是项目路径下apk的输出路径
存档后Jenkins-release-v1.0.0.apk就会显示在Jenkins项目最后一次成功的构建结果
到此配置基本完成,是时候构建一波了,回到任务主页,点击立即构建
左下角会出现构建进度,蓝色圆点表示成功,红色圆点表示失败,点击构建序号,下拉选择控制台输出可以查看构建日志
至此,构建就大功告成啦!
在本地的JenkinsWork工作空间目录下可以看到从Github上拉取的项目源码
构建成功打包的apk在此目录下
接下来我们可以设置让构建打包好的apk自动发布到fir,详细教程请移步至http://blog.fir.im/jenkins文章写得很详细,我就不多说了。发布到fir后,平常测试人员找你要测试包,你可以对他说:“自己去fir下载。”一脸帅气.jpg
好了,今天就分享到这,祝大家Jenkins构建之路愉快!有什么问题可以联系我 QQ: 337047207
更多文章移步本人个人网站 http://zachary46.xyz
Android使用Jenkins自动化构建测试打包apk的更多相关文章
- Jenkins自动化构建python nose测试
[本文出自天外归云的博客园] 简介 通过Jenkins自动化构建python nose测试分两步: 1. 创建节点(节点就是执行自动化测试的机器): 2. 创建任务并绑定节点(用指定的机器来跑我们创建 ...
- Jenkins自动化构建系列:01敏捷开发、自动化构建与持续集成
<SVN与TortoiseSVN实战系列>已写完,今天新开一个<Jenkins自动化构建系列>,上周听了Bob Jiang老师的Agile1001公开课,一直想写个总结,这篇关 ...
- 用Jenkins自动化搭建测试环境-前奏
用Jenkins自动化搭建测试环境-前奏 1.安装 参考及启动:https://www.cnblogs.com/Eric15/articles/9828062.html 2.插件 新手一般按推荐安装即 ...
- Maven创建Web工程并执行构建/测试/打包/部署
创建工程基本参考上一篇Java Application工程,不同的是命令参数变了,创建Web工程的命令如下: mvn archetype:generate -DgroupId=com.jsoft.te ...
- Maven的构建/测试/打包
继上一篇http://www.cnblogs.com/EasonJim/p/6809882.html使用Maven创建工程后,接下来是使用Maven进行构建/测试/打包. 在打包之前,先熟悉一下Mav ...
- Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建
Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建 一.Jenkins 进入项目---->Configure 1.设置项目代码从git中拉取 2.设置钩子程序 二.git ...
- 使用jenkins自动化构建android和ios应用
背景 随着业务需求的演进,工程的复杂度会逐渐增加,自动化的践行日益强烈.事实上,工程的自动化一直是我们努力的目标,能有效提高我们的生产效率,最大化减少人为出错的概率,实现一些复杂的业务需求应变.场景如 ...
- 【最新】Android使用jenkins全自动构建打包-Windows版本(Android,Jenkins,360加固,Email,QRcode,参数构建,蒲公英)
Android打包喝咖啡系列(Windows版) 这篇博客主要讲述的内容: 1.windows上部署Jenkins https://jenkins.io 2.基于SVN或Git https://git ...
- Jenkins自动化构建配置
写在前头 我每次修改代码一点东西,都要进行一个重新发布.重新发布的流程大概如下: 将最新代码同步上传到git上面 Maven打包 mvn clean install 将最新的jar包上传到服务器上面, ...
随机推荐
- CustomScrollView
body: CustomScrollView( slivers: [ SliverList( delegate: SliverChildBuilderDelegate( (context, int i ...
- python:循环定义、赋值多个变量
exec函数,可以循环定义.赋值多个变量 exec ("temp%s=1"%1) 这段代码的意思是,让exec执行temp1=1.字符串里面的%s由‘1’代替了. 我们在外面再 ...
- 读取本地json文件,并转换为dictionary
// 读取本地JSON文件 - (NSDictionary *)readLocalFileWithName:(NSString *)name { // 获取文件路径 NSString *path = ...
- Java线程基础(一)
说在前面,经过一段学习过后,自己发觉线程在Java中占有举足轻重的地位,总觉得如此复杂的线程知识点一定要好好理清才好消化,因而有了这篇文章. 但因鄙人资历尚浅,如有遗漏错误之处还请广大网友不吝赐教. ...
- bootstrap 简单练习(后续把其它页面也进行练习)
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- 异常处理与网络基础中的tcp,udp协议
# 异常处理: # 什么是异常?异常和错误的区别 # Error 语法错误 比较明显的错误 在编译代码阶段就能检测出来 # Iteration 异常 在执行代码的过程中引发的异常 # 异常发生之后的效 ...
- CMS收集器产生的问题和解决方案
垃圾收集器长时间停顿,表现在 Web 页面上可能是页面响应码 500 之类的服务器错误问题,如果是个支付过程可能会导致支付失败,将造成公司的直接经济损失,程序员要尽量避免或者说减少此类情况发生. 提升 ...
- 20175312 2018-2019-2 《Java程序设计》第7周学习总结
20175312 2018-2019-2 <Java程序设计>第7周学习总结 教材学习内容总结 已依照蓝墨云班课的要求完成了第八章的学习,主要的学习渠道是PPT,和书的课后习题. 总结如下 ...
- Undefined、Null区别渗透
Undefined 类型表示未定义,它的类型只有一个值,就是 undefined.任何变量在赋值前是 Undefined 类型.值为 undefined,一般我们可以用全局变量 undefined(就 ...
- Go-常见的面试题(一)
文章转载地址:https://juejin.im/entry/5971bed66fb9a06bb21adf15 1.写出下面代码的输出 package main import "fmt&qu ...