让我们来澄清一下概念:
GitLab服务器(GitLab Instance): GitLab服务器是托管代码库、项目管理和持续集成/持续交付(CI/CD)管道的平台。通常情况下,GitLab服务器是部署在服务器上的,可以是云服务器或私有服务器。
GitLab Runner: GitLab Runner 是一个独立的应用程序,用于运行 CI/CD 作业。它可以在本地计算机、虚拟机、容器中或者任何你想运行它的地方。Runner 接收来自 GitLab 服务器的作业,并在本地环境中执行这些作业。
因此,当你在 GitLab 上创建一个项目并为该项目注册了 Runner 后,在你本地电脑的命令行中运行 Runner 时,Runner 实际上是运行在你本地电脑上的。GitLab Runner 通过与 GitLab 服务器进行通信来接收作业,然后在本地环境中执行这些作业。因此,即使 GitLab 服务器是部署在服务器上的,但是 GitLab Runner 可以在任何支持的环境中运行,包括你的本地计算机
在 GitLab CI/CD 中,你可以配置一个或多个 GitLab Runner 来执行 CI/CD 任务。这些 Runner 可以是在本地计算机上运行的,也可以是部署在远程服务器上的。当你提交代码或者手动触发了 CI/CD 流程时,GitLab 会将任务发送到可用的 Runner 上执行。Runner 接收到任务后,会执行其中定义的命令,并将执行结果返回给 GitLab。
因此,如果你的 Runner 是在本地计算机上运行的,那么当你提交代码或者手动触发 CI/CD 流程时,GitLab 会将任务发送到你本地的 Runner 上执行。这就意味着你的本地计算机上需要安装并配置 GitLab Runner,并且该 Runner 必须能够访问 GitLab 服务器。
需要注意的是,虽然 Runner 是在本地计算机上运行的,但实际的构建和打包操作通常是在 Runner 所在的计算机上进行的,而不是在 GitLab 服务器上。所以,如果你在本地计算机上运行 CI/CD 流程,并且有关于权限、依赖项等问题,通常是针对本地计算机而不是 GitLab 服务器。
注意:需要有对应的权限,才能对GitLab进行配置
进入具体的项目 -> Settings -> CI/CD -> Runners -> Specific Runners
别人的是这样,我的不太一样,但是找还是能找到token在哪里
安装地址:
Install GitLab Runner | GitLab
注册教程:
方式一:交互式注册
官方步骤:注册 Runner
- 注册过程中,你需要提供以下信息:
- GitLab服务器的URL:输入你的GitLab服务器的URL。 如:https://gitlab.com/
- Runner注册的Token:在GitLab项目的设置中,找到“CI/CD”>“Runners”页面,复制“Specific Runner Token”。找管理员要或者自己看(如果有权限的话),我的没找到,是在下面点击new project runner,里面会拿到url与authration token,register的时候会用到
- Runner的描述:输入一个描述此Runner的名称。
- Runner的标签:可以选择为Runner添加标签,用于在GitLab CI/CD配置中选择特定的Runner。这个标签tag很重要,需要记录下来。我就没注意,runner的标签跟.gitlab-ci.yml不一样,导致一直出问题。
- Runner的执行器:选择适合你的环境的执行器,如shell、docker、docker+machine等。此处填shell。
- 完成注册后,Runner将与GitLab服务器建立连接。
配置Runner:
- 注册成功后,可以在GitLab项目的设置中的“CI/CD”>“Runners”页面查看和配置Runner。
- 可以为Runner配置特定的标签、并发构建数、执行器选项等。
启动Runner:
- 在终端或命令提示符中,运行以下命令启动Runner:
sudo gitlab-runner start
注:我的使用上面命令会报错,使用sudo gitlab-runner run成功
- [root@run01 ~]# gitlab-runner register
- Runtime platform arch=amd64 os=linux pid=3293 revision=f767c145 version=15.3.3
- Running in system-mode.
-
- Enter the GitLab instance URL (for example, https://gitlab.com/):
- http://192.168.170.133/
- Enter the registration token:
- GR1348941sUxNyye1qD4HcTSW-TMw
- Enter a description for the runner:
- [run01]: test
- Enter tags for the runner (comma-separated):
- build
- Enter optional maintenance note for the runner:
- this is d test
- Registering runner... succeeded runner=GR1348941sUxNyye1
- Enter an executor: custom, parallels, shell, docker-ssh+machine, docker, docker-ssh, ssh, virtualbox, docker+machine, kubernetes:
- shell
- Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
-
- Configuration (with the authentication token) was saved in "/etc/gitlab-runner/config.toml"
.gitlab-ci.yml里面的内容:
- stages:
- - build
-
- variables:
- ANDROID_APP_NAME: "flutterDemo" # Android 应用的名称
- ANDROID_PACKAGE_NAME: "com.demo.flutter_demo" # Android 应用的包名
-
- build_android_apk:
- stage: build
- script:
- - flutter clean
- - flutter build apk
- tags:
- - build
- artifacts:
- paths:
- - build/app/outputs/flutter-apk/flutter_demo.apk
- # only:
- # - main # 配置只有 main 分支触发构建
记得android目录下配置kestore文件相关的内容。
打包成功的截图如下: