Anroid+Jenkins+Maven流水线构建

需求背景

    基于多仓库组件化项目;实现不同组件的jenkins自动构建,构建成功后将产物aar文件上传到maven仓库统一管理;最终触发jenkins构建App壳工程。构建完成后自动上传蒲公英内测,并通过蒲公英触发消息通知到飞书群。

环境准备(Mac)

    nexus 

     Download Repository OSS

    下载完成后找个合适的目录,解压。打开终端,输入statrt

   nexus启动后 浏览器输入http://localhost:8081/页面如下:

   启动成功后,新建一个Maven2仓库;Type选择Hosted

    至此Maven搭建结束。

Android项目增加配置

module(即需要上传maven仓库的module)下的build.gradle添加apply plugin: 'maven';build.gradle中添加maven仓库的关联

uploadArchives {

    repositories {

        mavenDeployer{

            repository(url:"http://127.0.0.1:8081/repository/Maizi/") {

                authentication(userName:"admin",password:"xx")}

            pom.project{

                //引用时使用如下格式:implementation 'groupId:artifactId:version'

                //版本号,有更新时修改版本号,在上传

                version 1.0

                groupId"com.xx.xxx"

                pom.artifactId= "home"

                //默认配置不用修改

                packaging"aar"

                description "home Module"

            }

        }

    }

}

在gradle命令中运行

    运行success后,可在nexus管理的maven仓库里找到生成的aar包,以及对应的依赖关系所指向的pom.xml。

    在其他组件引用该aar时要在项目的根build.gradle中添加如下信息

repositories { ...

mavenLocal()

}

allprojects {

repositories { ...

maven { url   MAVEN_URL}

    }

}

    至此就可以使用上传项目中的方法和类。

 Jenkins

   Jenkins download and deployment     

    在安装jenkins之前,我们要先具备jdk和gradle以及Apache(mac自带)环境;

    安装前环境准备参考

   Jdk1.8:Mac系统安装JDK1.8及环境变量配置 -

   Gradle:Mac OS下安装Gradle -

   下载完成后【不要使用dmg方式安装jenkins,里面会有大量插件安装失败,各种配置问题】,直接运行jenkins.war;运行成后后如下

    运行成功后;‘打开localhost:8080,出现Unlock Jenkins(重设初始密码)界面;密码在/Users/userName/.jenkins/secrets/initialAdminPassword**文件(下图标注红色路径)中,打开文件,复制密码填到网页密码输入框中,继续。

    选择建议安装

    等待插件安装完后;创建管理员账号及密码。初始化完成后进入jenkins页面


点击Manager Jenkins进入Manager Plugs检查关键性插件是否存在

 Git插件: Git plugin;Git Client;Git Parameter Plug-In;

Gitlab插件:GitLab Plugin 和 Gitlab Hook Plugin

Android专用:Gradle plugin

Jenkins系统配置

进入Global Tool Configuration

1.新增jdk选择1.8;

2.新增git

3.新增gradle配置


点击保存;至此jenkins的一些全局配置完毕。

Jenkins新建自由风格项目


点击项目配置

可在常规配置选项卡里,新增参数构建,这些参数将是

在Gradle命令里有assemble_Flavors_Release;所以我们要提前构建好几个常用参数,比如是否release;渠道信息,变体信息,分支信息等。在定于还有我们将在后续的“构建”功能里用到以上参数。


在新建项目时已经配置好的git仓库信息

日常我们有触发jenkins构建的需要,例如提交代码到指定分支时去自动构建。此时需要安装

Generic Webhook Trigger Plugin 插件。可以在gitee仓库配置webhook进行触发jenkins构建;也可以本地url直接触发jenkins构建。具体的触发方式和webhook的使用方式可以参考:jenkins 搭建gitee实现代码自动化部署 -

下面我们进行构建配置

上传蒲公英的配置请参考蒲公英官网配置文档

蒲公英 - 文档中心 - 使用 Jenkins 插件上传应用到蒲公英

在蒲公英上传成功后,我们后续需要执行一个shell脚本,把蒲公英返回的信息【下载链接,二维码,更新说明】读取并通过webhook发送至企业微信或者飞书。通知测试人员下载最新的apk文件进行测试。

发送通知脚本如下

#---------------------------------------------------Begin-----------------------------------------------------------------

Webhook=https://open.feishu.cn/open-apis/bot/v2/hook/28e924bc-b971-4ec2-a1b7-72a19512ac17  #机器人Webhook地址

#----------------------------------------------------END-----------------------------------------------------------------

message=$buildQRCodeURL  #发送内容

content=新版本构建成功;二维码地址为:

curl ${Webhook} \

  -H 'Content-Type: application/json' \

  -d '

  {

        "msg_type": "text",

        "content": {

          "text": "'$content$message'"

        }

  }'

以上为”构建“tab的配置

下面我们将配置构建成功后的操作,一般来时构建成功后就是保存构建的产物文件。


点击保存。

配置完成后,jenkins项目如下


开发者可手动选择参数,指定分支;然后开始构建。也可以通过钩子进行远程触发构建。

在构建完成后,会将产物自动上传至蒲公英,并根据蒲公英平台返回的json。在做消息组装和通知;当然也可以配置发送邮件通知协作或测试人员。配置邮箱的通知,这个留作和人作业把。

你可能感兴趣的:(Anroid+Jenkins+Maven流水线构建)