掌握使用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:
[app3]: testandroid
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来玩。

原文地址https://www.cnblogs.com/zhouliweiblog/p/12677635.html

相关文章
|
10天前
|
存储 Java Android开发
探索安卓应用开发:构建你的第一个"Hello World"应用
【9月更文挑战第24天】在本文中,我们将踏上一段激动人心的旅程,深入安卓应用开发的奥秘。通过一个简单而经典的“Hello World”项目,我们将解锁安卓应用开发的基础概念和步骤。无论你是编程新手还是希望扩展技能的老手,这篇文章都将为你提供一次实操体验。从搭建开发环境到运行你的应用,每一步都清晰易懂,确保你能顺利地迈出安卓开发的第一步。让我们开始吧,探索如何将一行简单的代码转变为一个功能齐全的安卓应用!
|
2月前
|
移动开发 监控 前端开发
构建高效Android应用:从优化布局到提升性能
【7月更文挑战第60天】在移动开发领域,一个流畅且响应迅速的应用程序是用户留存的关键。针对Android平台,开发者面临的挑战包括多样化的设备兼容性和性能优化。本文将深入探讨如何通过改进布局设计、内存管理和多线程处理来构建高效的Android应用。我们将剖析布局优化的细节,并讨论最新的Android性能提升策略,以帮助开发者创建更快速、更流畅的用户体验。
52 10
|
24天前
|
开发框架 Android开发 iOS开发
探索安卓与iOS开发的差异:构建未来应用的指南
在移动应用开发的广阔天地中,安卓与iOS两大平台各占半壁江山。本文将深入浅出地对比这两大操作系统的开发环境、工具和用户体验设计,揭示它们在编程语言、开发工具以及市场定位上的根本差异。我们将从开发者的视角出发,逐步剖析如何根据项目需求和目标受众选择适合的平台,同时探讨跨平台开发框架的利与弊,为那些立志于打造下一个热门应用的开发者提供一份实用的指南。
51 5
|
26天前
|
开发工具 Android开发 iOS开发
探索安卓与iOS开发的差异:构建未来应用的关键考量
在数字时代的浪潮中,安卓和iOS这两大操作系统如同双子星座般耀眼夺目,引领着移动应用的潮流。它们各自拥有独特的魅力和深厚的用户基础,为开发者提供了广阔的舞台。然而,正如每枚硬币都有两面,安卓与iOS在开发过程中也展现出了截然不同的特性。本文将深入剖析这两者在开发环境、编程语言、用户体验设计等方面的显著差异,并探讨如何根据目标受众和项目需求做出明智的选择。无论你是初涉移动应用开发的新手,还是寻求拓展技能边界的资深开发者,这篇文章都将为你提供宝贵的见解和实用的建议,帮助你在安卓与iOS的开发之路上更加从容自信地前行。
|
2月前
|
Android开发 iOS开发 C#
Xamarin:用C#打造跨平台移动应用的终极利器——从零开始构建你的第一个iOS与Android通用App,体验前所未有的高效与便捷开发之旅
【8月更文挑战第31天】Xamarin 是一个强大的框架,允许开发者使用单一的 C# 代码库构建高性能的原生移动应用,支持 iOS、Android 和 Windows 平台。作为微软的一部分,Xamarin 充分利用了 .NET 框架的强大功能,提供了丰富的 API 和工具集,简化了跨平台移动应用开发。本文通过一个简单的示例应用介绍了如何使用 Xamarin.Forms 快速创建跨平台应用,包括设置开发环境、定义用户界面和实现按钮点击事件处理逻辑。这个示例展示了 Xamarin.Forms 的基本功能,帮助开发者提高开发效率并实现一致的用户体验。
78 0
|
2月前
|
Android开发 iOS开发 C#
Xamarin.Forms:从零开始的快速入门指南——打造你的首个跨平台移动应用,轻松学会用C#和XAML构建iOS与Android通用界面的每一个步骤
【8月更文挑战第31天】Xamarin.Forms 是一个强大的框架,让开发者通过单一共享代码库构建跨平台移动应用,支持 iOS、Android 和 Windows。使用 C# 和 XAML,它简化了多平台开发流程并保持一致的用户体验。本指南通过创建一个简单的 “HelloXamarin” 应用演示了 Xamarin.Forms 的基本功能和工作原理。
44 0
|
2月前
|
存储 IDE Java
探索安卓应用的构建之旅:从新手到专家
【8月更文挑战第31天】 本文是一篇面向初学者和有一定基础的开发者的技术性文章。我们将一起踏上一段激动人心的旅程,深入了解如何从零开始构建一个安卓应用。文章将引导你理解安卓开发的基础知识,掌握核心概念,并通过实际代码示例加深你的理解和技能。无论你是刚刚接触安卓开发,还是希望提升现有技能,这篇文章都将为你提供宝贵的信息和实用的技巧。准备好了吗?让我们一起开始吧!
|
2月前
|
Shell Docker 容器
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
|
1月前
|
Docker 容器
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
|
3月前
|
Devops 持续交付 开发工具
入职必会-开发环境搭建54-GitLab下载和安装
GitLab 是一个基于 web 的 Git 仓库管理工具,提供了代码托管、版本控制、协作开发、持续集成等功能,是一个综合的 DevOps 平台。用户可以使用 GitLab 托管他们的代码仓库,并利用其丰富的功能来管理和协作开发项目。 以下是 GitLab 的一些主要特点和功能。
入职必会-开发环境搭建54-GitLab下载和安装

相关实验场景

更多
下一篇
无影云桌面