关于Jenkins自动打包Android的apk包,网上官方的太多,这里简单纪录一下博主的经历和打包的参数纪录

(本篇文章需要对Jenkins有最基本的基础了解)

博主所在公司曾负责app测试过程中发生过事故,测试环境和预发布环境测试通过后,开发再打包正式环境apk时,忘记修改部分配置参数

导致上线后,app各种功能故障,龙颜大怒,紧急重新发版。

 好处:1、服务器自动打包,想什么时候要就什么时候要,不局限于开发是否有空

    2、打包发版转交给测试进行实施,安全闭环进一步锁牢,风险降低

    3、持续集成,可配置相关UI自动化脚本形成持续集成,高大上

    4、自我提升,可拓展性无限放大

    5、。。。

打包过程:

源码管理》》构建环境》》Gradle构建》》自定义后续操作》》构建后操作

解析:首先将git仓库的代码拉下来,通过gradle配置打包参数,然后将生成的apk用于后续拓展,博主是将apk上传至蒲公英,在蒲公英生成一个下载链接和下载二维码

再将下载链接和二维码通过钉钉机器人发送到钉钉群里,

效果图:

1、建立一个自由风格的Jenkins项目:

2、源码管理

Android开发将代码集中管理于git仓库,实行打包的第一步就是需要将源码拉下来

在源码管理模块:输入 git的地址、添加拥有权限的账号

$git_branch 参数   自定义打包时git分支

3、构建环境

4、构建

4.1、 添加Gradle 环境  设置打包apk参数

gradle配置打包参数常规的参数:

${VERSION_NAME} 版本名称:如V1.1.0  字符型     Jenkins字符参数

${VERSION_CODE} 主要用于上传应用市场后提示升级:如 1  整型  Jenkins字符参数

${API_ENVIRONMENT} 渠道包参数:如 测试环境(test)、预发布环境(pre)、正式环境(pro)  Jenkins选项参数

########:其实基于以上就能拿到打包的apk文件,但为了后续的方便,便上传至蒲公英,这样可以拿到下载链接和下载二维码

4.2、上传至蒲公英:

蒲公英的key值需要自己去申请,下面分别是上传的路径的apk包

蒲公英会返回一些自己的参数,如下载地址:${appShortcutUrl}、二维码:${appQRCodeURL}  需要什么需要自己去查询

查看日志可查询到参数:蒲公英所有参数如下

4.3、将下载链接和二维码图片通过顶顶机器人发送至钉钉群

增加构建步骤,执行shell 。xxxxxxxxxxxx为钉钉机器人token

钉钉机器人开发者文档快速通道:https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq

curl -H "Content-type: application/json" -X POST -d '{"msgtype": "text","text": {"content": "下载链接:'"https://www.pgyer.com/${appShortcutUrl}"'"},}' https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
curl -H "Content-type: application/json" -X POST -d '{"msgtype": "markdown","markdown": {"title":"下载二维码","text":"![screenshot]('${appQRCodeURL}')"},}' https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

5、构建后操作

Android Jenkins自动打包纪录的更多相关文章

  1. Jenkins自动打包配置

    当时也是花费了不少时间来配置Jenkins自动打包的问题,觉得还是需要记录一下. 1.安装Jenkins,这个很简单,不需要多说. 2.下载Git Plugin,Gradle Plugin,Andro ...

  2. 基于jenkins自动打包并部署Tomcat环境

    传统网站部署的流程 在运维过程中,网站部署是运维的工作之一.传统的网站部署的流程大致分为:需求分析->原型设计->开发代码->提交代码->内网部署->内网测试->确 ...

  3. Android ant自动打包脚本:自动替换友盟渠道、版本号、包名

    本文最后修改时间:2014-3-10 Android项目开发时,给公司人员安装,频繁升级,版本号总需要改,太麻烦,跟着时间变,自动升级才方便. Android项目开发新版时,手机上可能要装两个版本,一 ...

  4. jenkins自动打包生成docker镜像后自动发布并nginx代理访问

    之前曾写过docker及jenkins基础使用  https://www.cnblogs.com/xiaochangwei/category/816943.html 现在搭建环境的功能为: 1.jen ...

  5. [iOS开发] 使用Jenkins自动打包并上传至蒲公英

    设置构建触发器 Poll SCM H/2 * * * * 设置 构建脚本 # #xodebuild & jenkins 自动构建并上传至pgyer.com #2017年5月9日 # #定义一些 ...

  6. Jenkins自动打包相关操作

    Jenkins安装 Jenkins作为一个开源的集成工具,不仅可以用来进行android打包 ,也可以用来进行ios java 服务打包 官方地址https://jenkins.io/ 选择对应的系统 ...

  7. Android Jenkins 自动化打包构建

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

  8. Android ant自动打包 crunch 报错

    解决办法: 修改SDK_HOME/tool/ant/build.xml. <property name="aapt.ignore.assets" value="&l ...

  9. jenkins自动打包部署项目

    首先去jenkins的官网下载安装包 https://jenkins.io/   个人下载是长期稳定的那个版本,下载后,得到一个.msi的安装包: 点击进行安装,然后一直点击下一步. jenkins会 ...

随机推荐

  1. Mysterious Crime CodeForces - 1043D (思维+组合数学)

    Acingel is a small town. There was only one doctor here — Miss Ada. She was very friendly and nobody ...

  2. Java编程思想 第21章 并发

    这是在2013年的笔记整理.现在重新拿出来,放在网上,重新总结下. 两种基本的线程实现方式 以及中断 package thread; /** * * @author zjf * @create_tim ...

  3. JAVA笔记21-数组

    一.数组内存分析 1.java中的数组是引用数据类型,必须分配在堆中,数组中每个元素相当于它的成员变量(默认值为0):但C中的数组可以分配在栈中.数组中的元素可以是基本类型,也可以是引用类型.如Str ...

  4. 【leetcode】Largest Plus Sign

    题目如下: In a 2D grid from (0, 0) to (N-1, N-1), every cell contains a 1, except those cells in the giv ...

  5. Java设计模式:23种设计模式全面解析(超级详细)

    设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路.它不是语法规定,而是一套用来提高代码可复用性.可维护性.可读性.稳健性以及安全性的解决方案. 1995 ...

  6. WEB上传大文件

    众所皆知,web上传大文件,一直是一个痛.上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的. 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路.下面贴出简易 ...

  7. BZOJ 4373: 算术天才⑨与等差数列 线段树

    Description 算术天才⑨非常喜欢和等差数列玩耍. 有一天,他给了你一个长度为n的序列,其中第i个数为a[i]. 他想考考你,每次他会给出询问l,r,k,问区间[l,r]内的数从小到大排序后能 ...

  8. THU-CCF WC2019两开花记

    今年年初,清华大学举办的THUWC2019即将正式开启,我将继续扮演蒟蒻OIER,努力创造一个菜鸡的形象,THU-CCF WC两爆炸,笑掉各位大牙,大家多多关注. Day0 广州好热啊╰(‵□′)╯! ...

  9. 关于判断StringBuffer是否为空

    对于String和StringBuffer来说,都是通过创建新的char value[]数组来达到字符串改变的操作的,只不过String是通过新创建String对象来达到目的, 而StringBuff ...

  10. springCloud分布式事务实战(一)案例需求及实现步骤

    本文不对分布式事务原理进行探索,而是通过一个案例来说明如何使用分布式事务 案例需求:创建2个基于springCloud的微服务,分别访问不同的数据库:然后创建一个整合服务,调用微服务实现数据的保存到2 ...