本文档用于介绍如何搭建适用于构建 iOS 项目的 GitLab-CI 环境。

GitLab-CI 系列文章目前有三篇,主要讲解 GitLab-CI 的环境搭建与配置。本文为该系列的第一篇。

目录:

macOS

构建 iOS 项目必须要基于 macOS 操作系统。
无法上云(因为公有云不支持 CPU 虚拟化),且目前没有提供的 macOS 服务器,故需要一台本地硬件来提供 CI/CD 服务。

最低要求

macOS 的系统版本要求符合开发所使用的 Xcode 所要求的最低系统版本。
因为一般来说,一个开发组内的系统版本保持一致,故 CI 机器的系统版本应当尽量保持一致。
可查阅 Apple 官方的 Xcode - 支持 文档,查看系统最低要求。

如果使用 Xcode 14.2 & macOS 13 版本的系统进行开发,则 CI 机器最低应使用 macOS 12.5 版本。

翻墙 VPN

因为后续诸多步骤需要翻墙才能提高访问速度,甚至需要翻墙才能安装成功,所以建议先把翻墙VPN配置好。

开发环境

Xcode

在 macOS 上,Xcode 是大部分编程环境的基础;Xcode 包含例如 git 在内的一系列开发工具,所以第一步我们应当先下载 Xcode,之后再执行其他操作。

通过 Mac App Store 下载最新版本的 Xcode,或去官网下载对应版本的 Xcode。

如上所述,CI 机器上的 Xcode 版本应当与开发所使用的版本保持一致。

下载安装好 Xcode 之后,应当先打开一次 Xcode,完成后续流程,直至看到欢迎页面。

命令行工具

打开终端,输入以下命令,安装 Xcode 命令行工具:

xcode-select --install

在弹出的弹窗内,选择安装,并根据提示完成后续安装即可。

Git 配置

安装 Xcode 的过程中,将自动安装 git 服务。此时您需要在命令行中进行一些额外的配置:

git config --global user.name "git账户名"
git config --global user.email "注册git所用邮箱"

SSH

您需要配置 SSH,将本机的 SSH 添加到 GitLab 系统中。

首先进入 .ssh 目录:

cd ~/.ssh # 如果该目录不存在,则需要您手动使用 mkdir ~/.ssh 进行创建

接着创建 ssh 文件:

ssh-keygen -t rsa -C "注册git所用邮箱"

输入命令之后,连续敲击3个回车完成创建(请勿设置密码,否则可能导致一些问题)

最后,使用下列命令查看生成的公钥,并复制到 GitLab 中即可:

cat id_rsa.pub

环境初始化

博主自己写了一个用于初始化环境的脚本:

/bin/zsh -c "$(curl -fsSL 以后的脚本路径)" ci

在终端中,输入上述命令后,将安装如下服务:

  • Homebrew(安装过程中需要用户手动选择国内镜像源)
  • RVM,并确保 ruby 版本为 2.7.4 版本
  • Bundle
  • Mint
  • ~ 目录下添加开机解锁密码(默认为 qazxsw2

您可以 fork 该脚本后修改脚本内容,以安装适用于您自己的开发环境。

针对 Homebrew 的额外配置

执行初始化脚本时,可能出现如下报错:

No remote 'origin' in ...
fatal: not in a git directory Error

此时初始化脚本会被中断。我们可以执行 brew -v 命令查看提示,并按照提示执行如下命令:

git config --global --add safe.directory homebrew-core路径
git config --global --add safe.directory homebrew-cask路径
git config --global --add safe.directory homebrew-services路径

homebrew-corehomebrew-caskhomebrew-services 的路径添加到 git config 中即可。
之后再重新执行初始化脚本即可。

内网 VPN

一般来说 GitLab 服务都安装在公司内网,需要连接内网才能进行访问。
您需要在这一步中根据您自身的情况,确保 CI 电脑可以顺利访问公司内网服务。

GitLab-Runner

整体安装、配置流程可参考 官方文档,本节内容仅作为补充说明使用。其内容与官方文档基本一致。

下载安装

因为官方使用的是亚马逊的 s3 服务器,在墙内下载会比较慢,建议开启翻墙 VPN 或在早上或者网络条件比较好的时候下载。

GitLab-Runner 作为 GitLab-CI 的基础,其版本应该和 GitLab 的版本有所对应,否则容易出现不匹配的情况。
14.8.1-jh 版本的 GitLab 可以使用 15.1.0 版本的 Runner。

在终端输入下面的链接下载安装包:

该安装包适用于 Intel 芯片的 Mac,如果是 M 系列芯片的 Mac,则需要将最后的 amd64 修改为 arm64。

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

赋予权限

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

在终端输入上述命令后,即可在终端内使用 gitlab-runner 命令。

注册 Runner

详细注册流程请参考 注册 GitLab-Runner

启动 Runner

首先打开终端,切换到当前登陆用户:

su - <username>

接着安装 Runner 服务并启动:

cd ~
gitlab-runner install
gitlab-runner start

最后重启电脑即可完成 Runner 的安装。

可以在终端内输入 gitlab-runner list 命令,查看输出,并检查 config.toml 文件路径。

配置 Runner

请参考 配置 GitLab-Runner 文档中 concurrent 一节进行配置。


至此,这台电脑完成了 CI/CD 的相关配置。