设置 macOS Runner

在 macOS Runner 上运行 CI/CD 作业,您需要按顺序完成以下步骤:

当您完成后,极狐GitLab Runner 会在 macOS 机器上运行,并且单个 Runner 也准备好处理作业。

  • 更改 Bash 的系统 Shell。
  • 安装 Homebrew、rbenv 和极狐GitLab Runner。
  • 配置 rbenv 并安装 Ruby。
  • 安装 Xcode。
  • 注册 Runner。
  • 配置 CI/CD。

先决条件

在开始之前,您需要:

  • 安装近期版本的 macOS。本指南中的配置基于 11.4。
  • 确保您拥有访问机器的终端或 SSH。

更改 Bash 的系统 Shell

新版本的 macOS 和 Zsh 一起构成默认的 Shell。 您必须将其更改为 Bash。

  1. 连接您的机器并确定默认 Shell:

    echo $shell
    
  2. 如果值不是 /bin/bash,运行下列命令更改 Shell:

    chsh -s /bin/bash
    
  3. 输入密码。
  4. 重启您的终端或使用 SSH 重新连接。
  5. 重新运行 echo $SHELL。结果应该为 /bin/bash

安装 Homebrew、 rbenv 和极狐GitLab Runner

Runner 需要特定环境选项连接机器并运行作业:

  1. 安装 Homebrew 包管理器:

    /bin/bash -c "$(curl "https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh")"
    
  2. 设置 rbenv,它是 Ruby 版本管理器,并且极狐GitLab Runner:

    brew install rbenv gitlab-runner
    brew services start gitlab-runner
    

配置 rbenv 并安装 Ruby

现在来配置 rbenv 并安装 Ruby。

  1. 添加 rbenv 到 Bash 环境:

    echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
    source ~/.bash_profile
    
  2. 安装 Ruby 2.74 并将其设置为机器的全局默认值:

    rbenv install 2.7.4
    rbenv global 2.7.4
    

安装 Xcode

现在安装并配置 Xcode。

  1. 前往下列位置并安装 Xcode:

  2. 同意许可证并安装推荐的额外组件。 您可以打开 Xcode 并根据提示操作,或者在终端中运行以下命令:

    sudo xcodebuild -runFirstLaunch
    
  3. 更新活跃的开发者目录,这样 Xcode 就可以在您的构建中加载合适的命令行工具:

    sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
    

注册 Runner

现在我们来注册 Runner,开始您的 CI/CD 作业。

  1. 在极狐GitLab 的顶部栏上,选择 菜单 > 项目菜单 > 群组 并找到您的项目或群组。
  2. 在左侧边栏上,选择 设置 > CI/CD
  3. 展开 Runner
  4. 记录 URL 和注册令牌。
  5. 在终端中开启交互设置:

    gitlab-runner register
    
  6. 输入极狐GitLab URL。
  7. 输入注册令牌。
  8. 输入 Runner 的描述。 您将使用描述识别极狐GitLab 中的 Runner。名称与实例上执行的作业相关联。

  9. 输入标签,将特定作业指引到特定实例。您之后将会用到这些标签,以确保 macOS 作业在这个 macOS 机器上运行。在这个例子中,输入:

    macos
    
  10. 输入 shell 选择 Shell 执行器

会显示成功信息。

> Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

如果您想查看 Runner,单击 设置 > CI/CD 并展开 Runners

配置 CI/CD

在您的极狐GitLab 项目中,配置 CI/CD 并开启构建。您可以使用这个 .gitlab-ci.yml 示例文件。 注意标签要与您注册 Runner 的标签匹配。

stages:
  - build
  - test

variables:
  LANG: "en_US.UTF-8"

before_script:
  - gem install bundler
  - bundle install
  - gem install cocoapods
  - pod install

build:
  stage: build
  script:
    - bundle exec fastlane build
  tags:
    - macos

test:
  stage: test
  script:
    - bundle exec fastlane test
  tags:
    - macos

macOS Runner 现在可以构建您的项目了。