使用Jenkins+Gitlab集成Flutter自动化打包(Android),并发布到蒲公英

本文记录一下使用Jenkins+Gitlab集成Flutter自动化打包的过程。

在集成时,Jenkins和Gitlab是已经搭建好的,并且Gitlab上已经上传了Flutter项目。

Jenkins自动构建打包

安装Gitlab插件

因为Jenkins默认使用的是Github仓库,所以需要安装Gitlab的插件才可以实现配合工作。

根据路径打开页面 首页 -> Manage Jenkins -> Manage Plugins

选择可选插件选项卡,搜索gitlab一般第一项就是我们要安装的Gitlab插件。(因为我已经安装完了,所有没有搜索到)。安装完成后,会在已安装中出现,如下图

Jenkins上创建视图及任务

跳过创建视图的操作,创建一个名为XX_Android_Test的任务,创建任务的名称时,最好把环境带上。选择Freestyle project

配置任务

点开刚才创建的任务的配置选项,按照如下步骤配置任务。

配置源码管理

源码选择Git选项,需要填写其中的三项,项目地址,登录账号和指定分支。
可以发现登录账号我们之前并没有配置过,点击添加按钮,进入配置页,并且按照如下图片配置

源码管理至此配置完成。配置完可以点击保存,然后在任务视图的工作空间选项中查看是否已经能看到代码,能查看到说明已经配置成功。

配置自动构建

Jenkins的自动构建触发机制有很多种,这里就不多说了。我想要实现的是当Gitlab的代码有变化时,自动触发构建。

可以看到我选择的构建触发条件是Build when a change is pushed to GitLab。如果没有安装Gitlab Plugin插件,是没有这个选项的。

接下来一步就是要配置Gitlab Webhook,这一步的目的是让gitlab主动通知Jenkins进行构建。

记住Gitlab Webhook Url这个地址。
点击高级选项,点击generate生成secret token

登录Gitlab网页,找到对应的项目,进入项目视图,根据下图配置Gitlab Webhook UrlSecret token

点击增加Web钩子,后会在下方生成一条记录

Test处可以手动触发钩子操作,比如点击Push Events,切换到Jenkins页面后就会发现 开始构建了

配置构建脚本

构建模块中选择Execute Shell使用脚本构建,写入flutter打包命令,并在打包完成之后,打印产物目录。

flutter build apk --release -v --split-per-abi
ls build/app/outputs/apk/release/

到这里就配置完成了,让我们来试一下!

测试自动构建

在IDE中随便修改下,push到远程的test分支,切换到Jenkins控制台,发现触发自动构建了,可是却是一个红色的X~~

点开日志,看到是:

+ flutter build apk --release -v --split-per-abi
/home/jenkins/apache-tomcat-8.5.69/temp/jenkins4951377557025618866.sh:行2: flutter: 未找到命令
Build step 'Execute shell' marked build as failure
Finished: FAILURE

服务器安装Flutter环境

错误信息很明确,处理方式也非常简单,直接上官网链接入门: 在Linux上搭建Flutter开发环境

Jenkins配置环境变量

在配置好Flutter环境且在服务器端使用flutter doctor能正常使用flutter命令之后,还需要给Jenkins配置环境变量,否则Jenkins依然会报错。

在Jenkins首页 -> Manage Jenkins -> Configure System -> Global Properties(全局属性)中,勾选Environment variables,键填写为"PATH",值填写在服务器端执行命令echo $PATH输出的值,点击保存后即可生效。如下图:
在这里插入图片描述

服务器安装Android环境

配置好Flutter环境后,再次尝试,发现还是报错了。Android Sdk环境还没有!可以参考我的另一篇Linux安装Android Sdk

测试成果

各种环境都配置好后,重启执行一次构建,等待日志输出。
在这里插入图片描述
在日志中可以发现,第一次构建时,会自动下载gradle环境。
在这里插入图片描述
最终打包成功,并且执行了我们的打印输出目录的命令,登录服务器查看workspace中的输出目录,确实生成了打包后的产物。

第一步完成!

打包产物自动上传到蒲公英

Jenkins安装蒲公英插件

上传到蒲公英需要Jenkins安装Upload to pgyer插件,按照下图操作
在这里插入图片描述

配置构建后操作

在任务的配置视图中,我们在最后一项"构建后操作"中添加一步操作。蒲公英对v1版本的api不再维护,因此建议选择v2进行集成。
在这里插入图片描述

在这里插入图片描述
api_key在蒲公英的Api信息中复制过来,安装包位置默认为${WORKSPACE}/build/app/outputs/apk/release,安装包选择更加通用的v7版本app-armeabi-v7a-release.apk

在右下角的高级设置中,可以实现更多的功能。

  • buildName:指定上传后的App name
  • buildInstallType: (选填)应用安装方式,值为(1,2,3,默认为1 公开安装)。1:公开安装,2:密码安装,3:邀请安装
  • buildPassword:(选填) 设置App安装密码,密码为空时默认公开安装
  • buildUpdateDescription:(选填) 版本更新描述,请传空字符串,或不传。
  • buildChannelShortcut: (选填)所需更新的指定渠道的下载短链接,只可指定一个渠道,字符串型,如:abcd。渠道需在蒲公英平台提前创建。
  • qrcodePath:(选填)可以选择把二维码下载下来,这是下载路径
  • envVarsPath:(选填)存储上传日志的地址,不填表示不存

测试结果

执行构建,一次成功!查看蒲公英平台也已经更新版本。
在这里插入图片描述

结束

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 Docker + Jenkins + Gitlab+Harbor 自动化构建部署的详细资料: 1. Docker Docker 是一种容器化技术,可以将应用程序及其依赖项打包为一个可移植的容器,从而实现快速、一致和可靠的部署。 2. Jenkins Jenkins 是一种开源的自动化服务器,可以用于自动化构建、测试和部署软件。 3. Gitlab Gitlab 是一种基于 Git 的代码托管平台,可以管理源代码、问题和合并请求等。 4. Harbor Harbor 是一种开源的 Docker 镜像仓库,可以存储和管理 Docker 镜像。 下面是 Docker + Jenkins + Gitlab+Harbor 自动化构建部署的步骤: 1. 创建一个 Gitlab 仓库,用于存储应用程序代码。 2. 在 Jenkins 中创建一个新项目,并配置 Gitlab 的 Webhook,以便在代码推送到 Gitlab 时触发构建。 3. 在 Jenkins配置 Docker 插件,以便在构建完成后自动构建 Docker 镜像。 4. 在 Jenkins配置 Harbor 插件,以便在构建完成后自动将 Docker 镜像上传到 Harbor 镜像仓库。 5. 在 Jenkins配置部署脚本,以便在 Docker 镜像上传到 Harbor 后自动部署到目标服务器。 6. 在 Gitlab配置 CI/CD 流水线,以便在代码推送到 Gitlab 后自动触发 Jenkins 构建和部署流程。 7. 测试自动化构建部署流程,确保能够自动构建、上传和部署 Docker 镜像。 总之,Docker + Jenkins + Gitlab+Harbor 自动化构建部署可以大大提高软件开发和部署的效率,可以快速构建、测试和部署应用程序,从而实现持续集成和持续交付。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值