掌握使用gitlab ci构建安卓包的正确方法。
最近,该公司正致力于移动项目,所以它自然需要建立一个包装环境。我最初计划使用詹金斯,但发现在gitlab上创建项目后,有人提示我配置管道,所以我决定在gitlab上试用。毕竟,我认为詹金斯的配置太复杂了。
gitlab-runner
在gitlab中,gitlab-runner相当于Jenkins中的slave概念,因此您需要首先为项目配置一个runner。Gitlab-runner分为三种类型:共享型、群组型、特定型。其中:
共享运行程序相当于一个全局运行程序,所有项目都可以使用。
组运行器相当于为组设置运行器,因此可以使用组中的所有项目。
顾名思义,特定跑步者是项目中唯一的跑步者。只有这个项目可以使用。
就我个人而言,我建议使用格鲁朗。您可以根据不同类型的项目创建不同的组,如安卓、IOS、服务器等。然后,您可以为每个组创建一个相应的组运行器,这不会相互影响,也不需要为每个项目单独创建一个运行器。
安装gitlab转轮
Gitlab-runner需要安装在您的包装机上。在不同的平台上,gitlab-runner以不同的方式安装。请参考官方文件:https://docs.gitlab.com/runner/install/.以苹果为例:
下载文件
$ sudo curl-output/usr/local/bin/git lab-runner https://git lab-runner-downloads . S3 . Amazon AWS.com/latest/binary/git lab-runner-Darwin-amd64
配置权限
sudo chmod x/usr/local/bin/git lab-runner
启动gitlab runner
gitlab-runner安装
gitlab-runner start
注册gitlab-runner
[根@app3 ~]# sudo gitlab-runner寄存器
运行时平台arch=amd64 os=linux pid=6324修订版=1b659122版本=12.8.0
以系统模式运行。
请输入国际博协协调人网址:
http://192.168.4.194/
请为此运行程序输入gitlab-ci令牌:
rbLy6bwsNbTuzD_6Bma4
请输入此运行程序的gitlab-ci描述:
请输入此跑步者的gitlab-ci标签(逗号分隔):
testandroid
注册跑步者.成功的跑步者=rbLy6bws
请输入执行器: parallels,docker-ssh机器,custom,docker-ssh,shell,ssh,virtualbox,docker machine,kubernetes,docker:
码头工人
请输入默认的码头工人图像(例如,ruby:2.6):
jangrewe/gitlab-ci-android
跑步者注册成功。可以随意启动它,但是如果它已经在运行,那么应该自动重新加载配置!
执行上述命令后,gitlab-runner可以在gitlab中注册。需要解释执行命令时输入的几个参数。其中,gitlab-ci协调器的网址和gitlab-ci令牌可以从项目的设置-CI/光盘-运行者(组需要主权限)中查看,如下图所示:
Gitlab-ci描述是对跑步者的描述,可以根据情况填写。
Gitlab-ditags是runner的标签,将在以后的配置文件中使用。
输入执行器是用于配置跑步者的执行器。如果您需要执行一个shell脚本,它可以是一个shell。我们在这里使用docker,使用一个包含Android环境的容器:jangrewe/gitlab-ci-android。
此外,应该注意的是,gitlab-runner的注册信息也可以在gitlab所在的服务器的/etc/gitlab-runner/config.toml配置文件中修改。
重启gitlab-runner
应该注意的是,在gitlab注册了一个新的runner之后,gitlab-runner需要重新启动,这样注册的runner才能生效。当我在操作时,我花了很多时间解决问题,因为我没有重启。事实上,只要重启就可以解决。
检查gitlab-runner的状态
配置后,您可以在项目的设置-配置项/光盘/光盘中检查新添加的转轮是否处于运行状态,如下图所示:
配置安卓工程
配置完runner后,下一个任务是配置Android项目,只需创建。gitlab-ci.yml配置文件,然后填写您想要实现的步骤,有点类似于Jenkins中的管道脚本。然而,它认为gitlab ci的配置更简单。我的项目中的配置文件如下:
图像: gitlab-ci-android : v2 #用于编译android项目的图像
变量:
Gradle _ opts 3360 '-dorg . gradle . daemon=false ' #禁用gradle守护程序
before_script:
#配置梯度缓存目录
导出GRADLE_USER_HOME=/cache/。gradle
获取权限
chmod x ./gradlew
chmod x ./update-version-code.sh
阶段3360
build
提交代码自动编译
build:
阶段:构建
仅:
-主人
script:
-。/grad Lew AssembliedBug
tags:
-安卓
构建测试包
qa:
阶段:构建
仅:
- qa
script:
-。/grad Lew AssembliedBug
- sh -x /cache/deploy-android.sh
artifacts:
路径:
- app/build/outputs/apk/debug/
tags:
-安卓
上述配置的一般含义是:当开发人员向qa分支提交代码时,它将触发测试包的构建。软件包完成后,软件包将上传到文件服务器,以便于下载和安装。
最后,最后一个gitlab渲染:
摘要
总的来说,这很简单吗?每个人都可以直接在gitlab上播放ci/cd,这大大降低了成本。所以,如果你还没有制作电脑接口/光盘,你可以考虑直接用gitlab播放。
原地址:https://www.cnblogs.com/zhouliweiblog/p/12677635.html
发表评论