GitLab-CI(一):搭建 iOS CI 环境
本文档用于介绍如何搭建适用于构建 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-core
、homebrew-cask
和 homebrew-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 的相关配置。