前置条件:

环境搭建,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. [Python3 填坑] 008 索引君的朋友 in

    目录 1. print( 坑的信息 ) 2. 开始填坑 (1) 前情提要 (2) 索引君的朋友 in 上线 (3) 既然说了 in,不妨再说一说 not in (4) 一些补充 1. print( 坑 ...

  2. CentOS7 修复grub.cfg文件

    为了达到实验目的,首先删除grub.cfg文件 重启后发现系统进不去了,这正是我们想要的 进入系统救援模式,通过输入以下命令修复grub.cfg文件 重启后发现能正常引导进入系统了

  3. Django设置允许跨域请求

    方式一: 在中间件中 def process_response(self, request, response): response['Access-Control-Allow-Origin'] = ...

  4. mongoDB学习笔记(2)

    一.删数据库 1.语法 MongoDB 删除数据库的语法格式如下: db.dropDatabase() 删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名. 2.实例 以下实例我 ...

  5. js—input框中输入数字,动态生成内容的方法

    项目中需要在前端实现: 用户输入数字n,动态生成n个元素,删除n,自动清空n个元素(如图一): 用户输入数字n,失焦生成n个元素,再聚焦修改n,自动清空n个元素(如图二): 图一: 图二: 需求一实现 ...

  6. SQLyog安装

    安装 使用 首先看到下面的界面

  7. 在eclipse里搜索maven项目需要的dependency

    eclipse直接就可以通过下载同步仓库索引,直接关键字查询需要的dependency. 前提是你已经在你的eclipse上配好了maven正确的环境. 1. 设置在开启eclipse时下载同步仓库索 ...

  8. 18-基于双TMS320C6678 DSP的3U VPX的信号处理平台

    基于双TMS320C6678 DSP的3U VPX的信号处理平台 一.板卡概述 板卡由我公司自主研发,基于3U VPX架构,处理板包含两片TI DSP TMS320C6678芯片:一片Xilinx公司 ...

  9. Python开发—打包成exe

    pychaim下PyInstaller 打包 python程序 使用PyCharm开发python Pyinstaller打包jieba项目相关解决方案 Python打包成exe 一.安装pyinst ...

  10. 关于Python获取图片文件二进制数据的问题(获取为空)

    在搭建fastdfs文件系统的时候遇到了点问题,在测试上传文件数据流的时候,需要Python来获取本地文件的二进制流 from fdfs_client.client import Fdfs_clien ...