提升开发效率之利用GitLab CI/CD打包Android项目 |
您所在的位置:网站首页 › 什么叫打包成cd › 提升开发效率之利用GitLab CI/CD打包Android项目 |
在开始讲怎么利用GitLab CI/CD打包Android项目之前,先来了解一下什么是CI/CD。 什么是CI/CD先来看下官方文档就CI/CD的解释,如图 ![]() 而GitLab CI/CD就是GitLab内置的有这些作用的工具。了解了什么是GitLab CI/CD,接着来看CI/CD的工作原理。 GitLab CI/CD的工作原理GitLab CI/CD的一次工作由以下几个组件组成。 Pipelines:是持续集成,交付和部署的顶级组件。 Jobs:具体的工作内容,如代码编译或测试运行。 Stages:定义什么时间运行什么任务,如设置测试在代码编译之后运行。它们三者之间的关系如下图所示 ![]() Runners 由Runner组成,一个Runner执行一个Job,可以设置任意数量的Runner,Runner可以放在服务器上和本地的计算机上。 了解了GitLab CI/CD中的组件,那么他们是怎么配合以及分工执行的呢?其实他们怎样执行是由.gitlab-ci.yml脚本文件来安排的。这个脚本文件就是一个Pipeline,里面有一个或多个job组成一个jobs,job里面有不同的Stages。 可以从官方文档是来看CI/CD的基本工作流,如图 ![]() 从图中可以看出CI/CD能做的工作由很多,如自动编译、测试和打包,其实还能做检查代码,自动化测试等工作。 怎样把本地机器配置成Runner前文已经说了,要执行Pipeline是需要Runner的,那么怎样安装Runner呢?安装之前可以看下自己的GitLab仓库中是否已经有Runner呢?操作步骤是:进入自己的GitLab项目->在Setting菜单中选择CI/CD的菜单项,会看到下面的界面 ![]() ![]() 下载二进制文件 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注册Runner gitlab-runner register输入GitLab URL Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com ) https://gitlab.com(你的GitLab地址)输入token Please enter the gitlab-ci token for this runner xxxtoken可以在这里获取,就是前文看是否有Runner的那个地方 ![]() 输入Runner的描述,相当于这个Runner的名称 Please enter the gitlab-ci description for this runner [hostname] my-runner输入Tag,可以输入多个,以英文逗号分割,Tag的作用是如果有多个Runner,可以根据.gitlab-ci.yml脚本设置的Tag来选择对应的Runner。 Please enter the gitlab-ci tags for this runner (comma separated): my-tag,another-tag选择以什么方式执行,因为是是本地的电脑,所以选择shell就行了 Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell: shell执行以下命令,运行Runner cd ~ gitlab-runner install gitlab-runner start运行之后,就可以在GitLab仓库中看到运行的Runner了。 .gitlab-ci.yml脚本文件语法介绍先直接看下我项目中的这个文件 # 就是上文说的stages stages: - build_debug # 这里就是一个stage,可以定义多个stage,这个stage就是下面的build_debug # 构建之前会执行的脚本,这里导入本地的环境变量 before_script: - export ANDROID_HOME=/Users/work/Android/SDK - export PATH=$PATH:${ANDROID_HOME}/tools - export PATH=$PATH:${ANDROID_HOME}/platform-tools - chmod +x ./gradlew # 声明一个名叫build_debug的构建任务 build_debug: stage: build_debug # 构建中,执行一些脚本 script: - ./gradlew --stacktrace assembleDevelopDebug # 指定监听哪一个分支或什么时候触发Pipeline only: - tags #这里tags的作用是当修改gitlab项目tag的时候会触发 - test # 监听GitLab的这个分支 # - master # 指定由哪一个runner运行 tags: - dev # 这个dev是上文注册Runner时的tag,和注册时候tag一样的话就会用对应的Runner来执行任务 # 指定成功后应附加到任务的文件和目录的列表 artifacts: paths: - app/build/outputs/ # 构建完成之后执行的脚本 #after_script: # - 这里如果是要配合monkey的话,一般在这个地方执行monkey的脚本上面的脚本中已经介绍了一些语法,可以发现这些刚好可以和前文说的几个组件对应上,另外还有一些其他的语法,可以查看官方文档。 总结现在来总结一下本篇文章的主要内容,首先,介绍了什么是GitLab CI/CD,接着,简单的介绍了GitLab CI/CD的工作原理和一些组成组件,还介绍了怎么配置本地的Runner,最后,看了.gitlab-ci.yml文件并介绍了一些常用的语法。用好GitLab CI/CD的话,是可以大大增加我们的工作效率的,把一些重复的劳动交给机器来自动完成,希望本文能让你对GitLab的 CI/CD有个基本的认识并能利用它来完成自动打包工作。 本文已由公众号“AndroidShared”首发 ![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |