前置条件:

环境搭建,jenkins需要的插件看这里:

gitlab+jenkins自动化打包IOS

配置思路:

step1:

搭建sdk,gradle运行环境,参照:

CentOS7下安装安装android sdk & gradle

step2:

存在1个android项目(可以先自己创建一个helloworld工程,也可以用git clone一个项目至本地)

step3:

确认buildTypes,就是有几个测试环境,这需要和具体的开发沟通好

step4: 

测试打包环境可用:

首先cd到项目的app目录下

git克隆项目目录/trunk/5iwork/android/app

使用gradle clean命令清理一下环境

gradle clean

看到Successful的字样就成功了(这里我忘记截图)

step5:

使用gradle assmbleproRelease打包,打包成功,如图所示:

gradle assmbleproRelease

step6:

在app/build/outputs/文件下找到刚才生成的apk文件

运行pwd命令,记录下apk的目录地址(配置shell打包脚本的时候要用):

项目所在目录/trunk/5iwork/android/app/build/outputs/apk/pro/release

 

step7:

构建打包shell脚本

复制下面的gradle打包脚本,改一改目录地址,用sh build.sh运行,可以生成apk文件进行下1步

 

step8:

配置jenkins构建apk

注意,如果以前有配置过其它项目打包,这里可以直接复制1个job

修改点:

1.替换git仓库地址

2.shell脚本项目目录地址,换为jenkins项目目录;生成apk的目录

step8:

构建py脚本,用来把apk文件上传到蒲公英,参照

pytho脚本-上传apk至蒲公英

注意要改3个点,如图所示:

做完这些,构建Job,验证配置的结果,如图所示,就well done了

其它:

gradle打包脚本

 ## !/bin/sh
## 项目名
##使配置文件生效,否则会报gradle:命令找不到
source /etc/profile TARGET_NAME="AppFrameWork"
APKPATH="build/outputs/apk"
MODELGRADLEPATH="app"
BUILDTYPE=${ENV} ##打包版本,开发给测试打包默认是release的
APKVERSION="release"
##debug版本下,apk无需混淆,可以多一些打印日志的操作。
##release版本下,文件混淆,隐藏日志打印 ## 当前目录
SORCEPATH=${WORKSPACE} ##gradle目录(model级)
GRADLEWORKPATH=${SORCEPATH}/${TARGET_NAME}/${MODELGRADLEPATH} ## apk文件的存放路径
EXPORTPATH=${SORCEPATH}/${TARGET_NAME}/${MODELGRADLEPATH}/${APKPATH} ##apk文件的存放路径
EXPORTPATHAPK=${EXPORTPATH}/${BUILDTYPE}/${APKVERSION}/${MODELGRADLEPATH}-${BUILDTYPE}-${APKVERSION}.apk ## 新的apk名
APKNAME="XXXXAPP" ## 更名后apk路径
EXPORTPATHNEWAPK=${SORCEPATH}/${APKNAME}.apk ##切换到gradle工作目录
cd ${GRADLEWORKPATH} echo -e "============First Build Clean============"
## 清理缓存
gradle clean echo -e "============Export APK============" ## 导出APK包
gradle assemble${BUILDTYPE}Release echo -e "============Export APK SUCCESS============" ## 将APK复制到指定目录
cp ${EXPORTPATHAPK} ${EXPORTPATHNEWAPK}
echo -e "============APK Name: ${EXPORTPATHAPK}============"
echo -e "============APK Enviroment: ${BUILDTYPE}============"

如果想顺利的完成自动化打包(安卓)首先需要:

熟悉Gradle脚本(可以看成是一门独立的语言的),理解Task的概念

参考资料:

Gradle 构建基础

Gradle 入门--只此一篇

Tips:

查看build.gradle中共有多少个task::$ gradle tasks

另外对于构造不同测试环境的apk可以参照:

Gradle之构建变体(BuildVariant)

gitlab+jenkins自动化打包APK的更多相关文章

  1. gitlab+jenkins自动化打包IOS-jenkins配置

    实现的效果如图:  构建界面: 完成效果: 功能说明: 根据选择的代码分支,执行构建打包 构建成功后根据ipa/apk生成二维码,并可在历史构建列表中展示各个版本的二维码,通过手机扫描二维码可直接安装 ...

  2. Android Jenkins 自动化打包构建

    前言 在测试app项目过程中,通常都是需要开发打测试包给到测试,但是无论是iOS还是Android的打包过程都是相当漫长的,频繁的回归测试需要频繁的打包,对于开发同学影响还是蛮大的.因此在这种情况下, ...

  3. iOS Jenkins 自动化打包构建

    前言 在测试app项目过程中,通常都是需要开发打测试包给到测试,但是无论是iOS还是Android的打包过程都是相当漫长的,频繁的回归测试需要频繁的打包,对于开发同学影响还是蛮大的.因此在这种情况下, ...

  4. Jenkins自动化打包(Gitlab)并上传蒲公英

    整个过程详见:https://www.jianshu.com/p/91e8f571fc2b 以下是遇到的问题及解决过程 一.安装homebrew(网速很慢很慢……被墙了) /usr/bin/ruby ...

  5. gitlab+jenkins=自动化构建

    jenkins:运维持续集成工具,靠着丰富的插件挑大梁. gitlab:git代码管理仓库web版,功能强大且丰富. 本文是记录自己工作中从搭建到使用~ 前提是会点git~可以去廖老师的网站学习:ww ...

  6. Jenkins自动化打包配置

    具体流程不细讲,教程很多 * 环境配置: * xmapp安装 * Jenkins.war丢到Tomcat目录中,配置Jenkins * 宿主机安装jdk,gradle,配置环境变量(在Jenkins的 ...

  7. iOS自动化探索(九)使用Jenkins自动化打包并发布iOS App

    继前一篇: Mac环境下安装Jenkins Jenkins安装好后, 我们试着创建一个iOS自动打包并发布的任务 iOS App构建必须在MAC上面使用xcode进行,所以我们要安装下xcode集成插 ...

  8. gradle自动化打包apk

    前堤是要在安卓项目中配置好gradle.build脚本 ## !/bin/sh ## 项目名 ##使配置文件生效,否则会报gradle:命令找不到 source /etc/profile TARGET ...

  9. jenkins自动化打包部署

    请参考: http://m.blog.csdn.net/article/details?id=50518959 1.启动 jenkins.war ,打开首页  192.168.158.129:8080 ...

随机推荐

  1. 红黑树插入操作---以JDK 源码为例

    红黑树遵循的条件: 1.根节点为黑色. 2.外部节点(叶子节点)为黑色. 3.红色节点的孩子节点为黑色.(由此,红色节点的父节点也必为黑色) 4.从根节点到任一外部节点的路径上,黑节点的数量相同. 节 ...

  2. SpringBoot 创建 console程序

    1.在pom中添加依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId> ...

  3. [Python3] 020 借函数,谈一谈变量的作用域

    目录 1. 概述 2. 分类 3. 变量的作用范围 少废话,上例子 4. 将局部变量提升为全局变量 少废话,上例子 5. 内建函数 globals() 与 locals() 少废话,上例子 6. 邪恶 ...

  4. 洛谷 - P4008 - 文本编辑器 - 无旋Treap

    https://www.luogu.org/problem/P4008 无旋Treap也可以维护序列. 千万要注意要先判断p节点存在才进行Show操作,不然输出一个'\0'(或者RecBin里面的东西 ...

  5. Elasticsearch7.X 入门学习第三课笔记----search api学习(URI Search)

    原文:Elasticsearch7.X 入门学习第三课笔记----search api学习(URI Search) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出 ...

  6. HTML创建链接框

    使用CSS样式创建一个漂亮的链接框吧 <!DOCTYPE html> <html> <head> <style> a:link,a:visited { ...

  7. org.hibernate.hql.ast.QuerySyntaxException: tb_voteoption is not mapped [from tb_voteoption where voteID=?]

    转自:https://www.cnblogs.com/albert1017/archive/2012/08/25/2656873.html org.hibernate.hql.ast.QuerySyn ...

  8. [转]Oracle 11g 基于CentOS7静默安装教程(无图形界面,远程安装) --有部份地方有问题

    Oracle 11g 基于CentOS7静默安装教程(无图形界面,远程安装) [转载]原文地址:http://canonind.blog.51cto.com/8239025/1883066 一.安装前 ...

  9. openstack stein部署手册 9. neutron

    # 安装程序包 yum -y install openstack-neutron-linuxbridge ebtables ipset # 变更配置文件 mv /etc/neutron/neutron ...

  10. 网络拓扑_配置hybrid端口

    目的:实现不同VLAN间的PC不可互访, 但不同VLAN的PC均可以访问服务器. 例: VLAN5与VLAN10的PC不可以互通,但它们均可与服务器VLAN50互通. 拓扑图: