这可能是东半球最详细的Linux下搭建Jenkins服务器实现自动打包的教程(下)

上一篇我们从零开始,在Linux环境下配置了Jenkins的Android构建环境,但也仅仅是搭建环境,至于参数化构建、输出apk
、定时构建、邮件发送等功能因为篇幅的原因没有介绍,本篇博客就来介绍介绍Jenkins这些常用的功能。如果你对jenkins还尚无所知,请见上一篇博客:这可能是东半球最详细的Linux下搭建Jenkins服务器实现自动打包的教程(上)

参数化构建

我们开发的时候除了生产环境,往往还有测试环境,而生产环境和测试环境的网络请求地址往往是不一样的,每次切换开发环境都要在代码中修改请求地址然后重新打包,而打包的时间往往比较耗时,而有了Jenkins,我们就可以把打包的工作交给测试,只需要在Jenkins中把请求地址作为动态参数设置进去就好,测试通过打包的时候,可以自行选择打包的环境,这样能大大提升开发的工作效率。下面来看一看怎么操作:
首先明确一点,Jenkins中配置的参数都会以键值对的形式写入到工程的gradle.properties文件中,而我们可以在build.gradle文件中接收这些参数,或者这些参数写入到BuildConfig文件中,然后供在代码中引用。具体操作如下,现在jenkins的配置页面中选择参数化构建,然后选择添加参数:


在这里插入图片描述

添加参数有如下类型:


在这里插入图片描述

常用的有字符参数、密码参数、布尔值参数和选项参数等,这里我们配置网络请求的BaseUrl,我们添加一个选项参数,如下:


在这里插入图片描述

名称填入参数的名称,选项填入可供选择的项,以行分割,描述填写该参数的描述和作用即可。这里假设www.baidu.com是生产地址,其它为测试地址。然后我们需要在gradle.properties文件中接收一下配置的参数,gradle.properties中的代码:

# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
BASE_URL = "www.baidu.com"

文件中的键的名称要和Jenkins中配置的参数的名称一致。

然后在app的build.gradle文件中引用该参数。代码如下:


在这里插入图片描述

红色框框圈起来的部分表示会在编译时自动生成的配置类BuildConfig中加入一个String类型,变量名为BASE_URL的静态变量,编译过后的BuildConfig类代码如下:

public final class BuildConfig {
  public static final boolean DEBUG = Boolean.parseBoolean("true");
  public static final String BUILD_TYPE = "debug";
  public static final String FLAVOR = "";
  public static final int VERSION_CODE = 1;
  public static final String VERSION_NAME = "1.0";
  // Fields from build type: debug
  public static final String BASE_URL = "www.baidu.com";
}

这些变量我们编译成功后,可以在代码的任何地方中使用这些变量,我们只需要在设置网络请求的BaseUrl时引入这里配置的变量即可。下面验证一下是否真的可以通过Jenkins把参数配置进工程:

我们配置好参数后,保存配置页面,然后右键工程,选择参数化构建:


在这里插入图片描述

然后会让你选择使用哪个参数:


在这里插入图片描述

我们这里选择第二个参数,开始构建,这里需要注意一点,在配置页面中的构建选项中需要把Pass all job parameters as Project properties 这个选项勾上


在这里插入图片描述

这样Jenkins才能把选择的参数配置进工程中。 然后构建成功后我们在项目的工作空间下查看BuildConfig类中的代码:


在这里插入图片描述

可以看到编译成功后,我们配置的参数已经被配置进工程中了,然后我们就可以在任意的代码中引用这个变量啦,当然这里只是配置了一个参数,jenkins可以配置n个不同类型的参数,大家可以去自行尝试哈~

构建完成后发布apk

我们构建完成后,要生成apk文件,并把apk文件上传到一些应用分发平台,例如蒲公英,这类的平台有很多 ,我这里选择蒲公英这个应用分发平台,上传完成后就可以拉取二维码供测试人员去下载,省去自行传输文件的时间。走你,具体的步骤在
使用 Jenkins 插件上传应用到蒲公英 ,首先需要安装插件,如何安装这里就不赘述了,大家自行查看文档。插件安装成功后我们在构建后操作中点击增加构建后的操作步骤:


在这里插入图片描述

然后选择上传至蒲公英:


在这里插入图片描述

如下:


在这里插入图片描述

有许多参数,各个参数对应的意义官方文档已经给出来了:


在这里插入图片描述

好吧,看来还得科普下蒲公英的使用,注册登录啥的就不说了,登陆成功后进入账户设置,然后选择发布应用:


在这里插入图片描述

再然后就是把apk文件上传,填写应用信息,发布,发布成功后会有二维码提供下载,这些都是傻瓜式操作,跟着提示一步步来就行,重点不在这里,回到我们Jenkins上传蒲公英的配置,看下我自个的配置:


在这里插入图片描述

然后我们构建成功后会自动用插件去上传apk到蒲公英:


在这里插入图片描述

这里 pgyer uKey和pgyer api_key获取方式如下:


在这里插入图片描述

如果你绑定了手机号,还能收到上传成功的短信,是不是很方便?二维码也存储在我们/app/build/qrcode/qrcode.png路径下,直接把这个二维码发给别人,别人直接扫描二维码即可下载啦~

邮件发送

邮件发送需要配置一下邮箱相关配置,路径在系统管理>系统设置>Extended E-mail Notification选项,具体配置如下,如果没有,需要搜索安装该插件,路径是系统管理>插件管理,搜索Email Extension Plugin并安装,安装完成后系统设置中就会出现Extended E-mail Notification选项,具体的配置如下:


在这里插入图片描述

标题模板代码:

[Jekins构建通知]$PROJECT_NAME - Build # $BUILD_STATUS!

内容模板代码:

-~~~~~Jenkins自动构建通知,请勿回复~~~~~~~)
<br>
项目名称:$PROJECT_NAME<br>
构建状态:$BUILD_STATUS<br>
触发原因:${CAUSE}<br>
构建地址:<A HREF="${BUILD_URL}">${BUILD_URL}</A><br>

这里需要注意一点,有个password,填的不是qq邮箱的密码,是开通qq邮箱smtp服务时给你的授权码,如何开通qq邮箱的smtp服务请参考开通qq邮箱smtp服务

这是系统设置的配置,完了之后我们还需要在项目的配置中的构建后操作中新增Editable Email Notification操作,和构建后上传到蒲公英的操作方法是一样的,然后在表单中做如下配置:


在这里插入图片描述

这里引用的一些字段就是我们刚刚在系统设置中定义的一些内容,我这里直接用最原始定义的内容了,当然内容也是可以修改的,自己在输入框中填入自己想要填入的内容就好啦~配置完成后,点击保存,然后重重新构建工程,控制台查看输出:


在这里插入图片描述

可以看到,上传到蒲公英和发送邮件都成功了,有个Error,原因未知,但是邮件能收到。看下邮件列表:


在这里插入图片描述

这里收到了两封邮件,有一封是因为在蒲公英上绑定了邮箱,每次上传应用成功后蒲公英都会发送一份邮件给我,另一封则是jenkins构建成功后发送的邮件,点开看看:


在这里插入图片描述

内容都是我们刚刚定义的模板并从Jenkins中取的一些常用的值。这样构建成功后发送邮件也完成了。

定时构建

Jenkins允许我们在特定的时间点、每隔多长时间构建一次,举个例子,我们每隔五分钟构建一次,则需要在项目的配置>构建触发器>定时构建做如下配置:
在这里插入图片描述
然后点保存,五分钟后就可以收到构建成功的邮件了,至于日程表的具体语法可以参照如下写法:


在这里插入图片描述

大家参照这个语法写日程表,然后点击保存,就可以实现jenkins的定时构建了。是不是很easy?

总结:好啦,jenkins常用的功能差不多就这些,当然jenkins还有许多其它的功能,等用到的时候再去发掘,毕竟jenkins那么多功能,光靠一两篇博客是讲不完的,总之这个糟老头子坏得很,最后附上一张糟老头子的头像当作本篇博客的镇博之宝~


在这里插入图片描述

欧了~
完~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值