需求背景
基于多仓库组件化项目;实现不同组件的jenkins自动构建,构建成功后将产物aar文件上传到maven仓库统一管理;最终触发jenkins构建App壳工程。构建完成后自动上传蒲公英内测,并通过蒲公英触发消息通知到飞书群。
环境准备(Mac)
nexus
下载完成后找个合适的目录,解压。打开终端,输入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及环境变量配置 - 简书
下载完成后【不要使用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。在做消息组装和通知;当然也可以配置发送邮件通知协作或测试人员。配置邮箱的通知,这个留作和人作业把。