掌握使用gitlab ci构建Android包的正确方式
掌握使用gitlab ci构建Android包的正确方式
最近公司在做移动端的项目,自然而然的需要搭建打包的环境。本来计划用Jenkins的,但是发现在gitlab上创建完项目后,提示去配置pipeline,于是决定用gitlab去尝试下,毕竟我觉得Jenkins的配置过于复杂了。
gitlab-runner
在gitlab中,gitlab-runner相当于Jenkins中的slave的概念,所以首先需要给项目配置一个runner。gitlab-runner分为三种:Shared Runner、Group Runner、Specific Runner。其中:
Shared Runner相当于全局的runner,所有的项目都可以使用。
Group Runner相当于给一个分组设置runner,因此,分组中所有的项目都可以使用。
Specific Runner顾名思义,就是项目特有的runner。只有这一个项目才能使用。
个人建议使用Group Runner,你可以根据不同种类的项目,创建不同的分组,比如:Android、IOS、服务端等,然后针对每个分组创建对应的Group Runner,这样相互之间不会有影响,同时又不需要为每个工程单独创建runner。
安装gitlab-runner
需要在你的打包机器上安装gitlab-runner,在不同的平台上,安装gitlab-runner的方式不一致,可以参考官方文档:https://docs.gitlab.com/runner/install/。这里以mac为例:
下载文件
$ sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
配置权限
sudo chmod +x /usr/local/bin/gitlab-runner
启动gitlab runner
gitlab-runner install
gitlab-runner start
注册gitlab-runner
[root@app3 ~]# sudo gitlab-runner register
Runtime platform arch=amd64 os=linux pid=6324 revision=1b659122 version=12.8.0
Running in system-mode.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.4.194/
Please enter the gitlab-ci token for this runner:
rbLy6bwsNbTuzD_6Bma4
Please enter the gitlab-ci description for this runner:
Please enter the gitlab-ci tags for this runner (comma separated):
testandroid
Registering runner... succeeded runner=rbLy6bws
Please enter the executor: parallels, docker-ssh+machine, custom, docker-ssh, shell, ssh, virtualbox, docker+machine, kubernetes, docker:
docker
Please enter the default Docker image (e.g. ruby:2.6):
jangrewe/gitlab-ci-android
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
执行上面的命令,就能将gitlab-runner注册到gitlab中,需要说明下执行命令时输入的几个参数,其中gitlab-ci coordinator URL和gitlab-ci token可以从项目(Group需要master权限)的Settings—>CI/CD—>Runners中查看,如下图所示:
gitlab-ci description是对runner的描述,根据情况填写即可。
gitlab-ci tags 是runner的标签,在后面的配置文件中会用到。
enter the executor是配置runner使用的执行器,可以是shell,如果你需要执行shell脚本的话。我们这里使用的是docker,使用了一个包含Android环境的容器:jangrewe/gitlab-ci-android。
另外,需要注意,在gitlab所在服务器的/etc/gitlab-runner/config.toml配置文件中也可以对gitlab-runner的注册信息进行修改。
重启gitlab-runner
需要注意的是,往gitlab注册一个新的runner之后,需要将gitlab-runner进行重启,这样,注册的runner才能生效。我在操作的时候,因为没有重启,花了好多时间解决出现的问题。其实只要重启即可解决。
检查gitlab-runner的状态
配置好之后,可以在项目的settings—>CI/CD中查看新增的runner是否是running状态,如下图所示:
配置Android工程
runner配置好后,接下来的工作就是配置Android项目,只需要在工程目录下创建.gitlab-ci.yml配置文件,然后往里面填充你想要实现的步骤即可,有点类似Jenkins中的pipeline脚本。不过,感觉gitlab ci的配置更加简单一些。我项目中的配置文件如下所示:
image: gitlab-ci-android:V2 # 用来编译 android 项目的镜像
variables:
GRADLE_OPTS: "-Dorg.gradle.daemon=false" # 禁用 gradle 守护进程
before_script:
# 配置 gradle 的缓存目录
-
export GRADLE_USER_HOME=/cache/.gradle
获取权限
- chmod +x ./gradlew
- chmod +x ./update-version-code.sh
stages:
- build
提交代码自动编译
build:
stage: build
only:
- master
script:
- ./gradlew assembleDebug
tags:
- android
构建测试包
qa:
stage: build
only:
- qa
script:
- ./gradlew assembleDebug - sh -x /cache/deploy-android.sh
artifacts:
paths: - app/build/outputs/apk/debug/
tags:
- android
上面配置的大致意思是:当开发往qa分支提交代码时,会触发构建测试包,打包完成后,会将包上传到一个文件服务器上,方便下载安装。
最后上一个gitlab的效果图:
总结
整体来看,是不是挺简单的,大家可以直接在gitlab上玩ci/cd,大大降低了成本。所以如果大家现在还没有将CI/CD做起来的,大家可以考虑直接用gitlab来玩。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
xrkmonitor 字符云监控系统 v2.1 发布
该版本主要引入了IP地址库,新增了监控插件,改动列表如下: 新增监控点数据类型: 字符串-IP 新增IP 地址库支持以 IP 地址作为字符串上报时转换到省市级地域 修复日志配置下发 bug 修复 ‘历史累计’ 监控点数据类型 bug 新增网站监控插件:monitor_apache_log 新版本可轻松生成基于IP 地址的地理位置分布图,如下: 新增监控插件: monitor_apache_log 插件监控效果示例图: 详细了解插件:https://gitee.com/xrkmonitorcom/monitor_apache_log xrkmonitor 字符云监控系统以及插件演示地址: http://open.xrkmonitor.com/
- 下一篇
阿里云专业认证(ACP),值得报名吗?
是否值得报名要看行业和企业,云计算行业绝对的朝阳产业,阿里云国内第一云。阿里云管家来详细说下阿里云的ACP认证吧: ACP认证方向选择: 阿里云的ACP认证目前分为五个方向,即云计算方向、大数据方向(大数据工程师认证和大数据分析师认证)、云安全工程师认证、人工智能工程师认证(暂未上线)、企业互联网架构工程师认证,按照自身实际情况选择。参考官方:阿里云ACP认证官方详解,目前考取云计算方向的ACP较多。 考试方式详解: **考点介绍:**ACP认证是线下考试,对,是线下,阿里云目前在杭州、北京、上海、深圳、广州、天津、郑州等20多个城市设立考点。分数介绍:以ACP云计算方向为例:单选题及判断题,70题(每题1分)多选题30题(每题1分),试卷满分为100分,考试时间为120分钟,及格分数:80,只要考到80分就可以拿到证书。考试费用:考取ACP认证,需要购买认证授权码,官方报价1200元,一次考不过没有补考机会,需要重新购买重新考,也就是说,考一次1200元,可以随便考,考到通过为止。考试题内容及如何复习?以云计算方向为例,考试题主要集中在云服务器ECS、弹性伸缩、负载均衡、专有网络、O...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长