macOS上安装gitlab-runner安装与配置

1. 前言

本文主要介绍使用二进制文件方式在macOS上安装并注册gitlab-runner.

2. 下载gitlab-runner

根据不同种类的CPU, 下载不同的二进制文件.

对于Intell CPU, 使用如下命令下载.

1
2
3

sudo curl --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64"

对于Apple Silicon CPU, 使用如下命令下载.

1
2
3

sudo curl --output /usr/local/bin/gitlab-runner "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-arm64"

3. 安装特定版本的gitlab-runner

以上方式下载的是最新版gitlab-runner, 也许会与gitlab server存在兼容性问题.
推荐下载与gitlab server相兼容的gitlab-runner的特定版本.
Bleeding Edge - download any other tagged release页面上找到特定版本的二进制文件连接, 将以上命令中的url替换即可.

3.1. 首先确定gitlab服务器版本

首先确定gitlab版本信息, 可以使用如下命令在服务器端查询, 当然也可以在gitlab web界面帮助信息中找到版本号.

1
2
3
4
5
6
7
gitlab-rake gitlab:env:info

# 例如
...
GitLab information
Version: 15.8.1-ee
Revision: c49deff6e37

知道了gitlab版本, 我们就可以找到gitlab-runner的下载地址, 虽然不是每一个版本的gitlab-runner下载地址都列在了在Bleeding Edge - download any other tagged release页面, 但是一些关键信息, 但是我们还是能从中获取一些关键信息.

关于gitlab-runner与gitlab的兼容性原则,gitlab和gitlab-runner在主版本和小版本(major.minor)保持同步,具有相同主版本和小版本号的gitlab和gitlab-runner兼容性最好, 较老的runner可能可以兼容比較新的gitlab,反之亦然,但是不能完全保证.详情请参考官网关于兼容性原文

例如对于版本15.8.1-ee的gitlab, 其对应的macOS intel cpu架构的gitlab-runner应该是https://gitlab-runner-downloads.s3.amazonaws.com/v15.8.1/binaries/gitlab-runner-darwin-amd64, 所以下载命令应该如下:

1
2
3

sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/v15.8.1/binaries/gitlab-runner-darwin-amd64

4. 授予gitlab-runner可执行权限

1
2
3

sudo chmod +x /usr/local/bin/gitlab-runner

5. 安装gitlab-runner并作为服务启动

与其它操作系统不同的是, macOS需要运行在当前用户下, 而不像其它操作系统可以为gitlab-runner单独创建一个用户.

打开终端首先切换到当前用户.

1
2
3

su - <username>

将gitlab-runner安装为一个服务并启动它

1
2
3
cd ~
gitlab-runner install
gitlab-runner start

重启计算机.

注意
当注册gitlab-runner在 macOS 上构建 iOS 或 macOS 应用程序时,请使用 shell 执行器。pipeline job将直接在主机上以登录用户运行。这些作业不会在容器中运行,这比使用容器执行器安全性较低。有关详细信息,请参阅安全影响文档

6. 注册gitlab-runner

  • 向GitLab-CI注册一个Runner需要两样东西:GitLab-CI的url和注册token。

  • 其中,token是为了确定你这个Runner是所有工程都能够使用的Shared Runner还是具体某一个工程才能使用的Specific Runner。

  • 如果要注册Shared Runner,你需要到管理界面的Runners页面里面去找注册token.

  • 打开gitlab页面menue > admin > CI/CD > runners, 在Setup shared runner一节可以找到相应的url和token

  • 注册完成之后,在页面menue > admin > runner就会多出一条Runner记录

    1
    2
    3

    gitlab-runner register --url your_gitlab_server_url --registration-token your_token

    注册完成后, 会有消息输出告诉配置文件的位置 “/Users//.gitlab-runner/config.toml”

7. 关联阅读

gitlab安装升级及迁移

使用gitlab issue board的四种方式

GitLab集成PlantUML

gitlab-runner安装与配置

macOS上安装gitlab-runner安装与配置

fedora上安装gitlab-runner安装与配置

ubuntu上安装gitlab-runner安装与配置

windows上安装gitlab-runner

gitlab CICD基础

8. troubleshooting

问题i: gitlab-runner注册之后, admin> runner界面去查询, runner的状态是”Never contacted”

问题排查: 执行gitlab-runner health-check, 检测gitlab-runner的健康状况

解决办法: 需要手动执行gitlab-runner verify, 详情请参考这里

问题2: gitlab-runner不主动pick up任务

原因: 未知, 有很多人遇到相同的问题, 参考这里 截至目前2023/08/24还没有得到回复.

临时解决方案: 在macos下主动运行run命令

1
2
3

gitlab-runner --debug run

9. 参考文档

Install GitLab Runner on macOS