如何为 iOS 项目设置 GitLab CI

iKK*_*iKK 3 continuous-integration ios cocoapods gitlab gitlab-ci

是否有关于如何使用Gitlab为 iOS 项目设置 CI 的最新且足够详细的教程?

我发现了很多教程(见下面的列表)——但自从这些教程制作以来,GitLab 的情况似乎已经发生了变化。或者对于我这个初学者来说,它们的解释不够详细和充分。因此我想知道是否有关于如何在 Mac 上为 iOS 设置 Gitlab-CI 的最准确的分步说明?

特别是,我正在寻找一个使用 Fastlane 并具有 Cocoapods 依赖项的 iOS 项目的 Gitlab-CI 分步教程。

下面您可以找到有关 iOS 项目的 GitLab CI 设置的教程和页面列表。

(我已经遵循了所有这些 - 但对于我这个 CI 初学者来说,没有一个足够详细,或者实际上,对于 2019 年和 GitLab 今天所代表的内容来说,它们不再准确)。

对于所有教程,我最终都会遇到 Gitlab Pipeline 错误。

这里是我的开放式 stackoverflow 问题列表,每个问题都有自己的 Gitlab CI 试用:

  • gitlab-runner register没有 sudo:我最终得到“权限被拒绝” Stackoverflow Nr1

  • gitlab-runner register使用 docker:我最终遇到“root error” Stackoverflow Nr2

  • sudo gitlab-runner register使用 sudo:我最终遇到“root error” Stackoverflow Nr 3

具体问题:

  1. 你可以在 iOS 版 Gitlab 中使用“docker”吗?(或者必须是“shell”)
  2. 您的 gitlab-runner 注册是否需要使用“sudo”一词?(为什么或者为什么不)
  3. 如何在 Mac 上设置权限,以便在省略所有 sudo 单词后 Gitlab CI 可以正常工作?

以下是我找到的解释 Gitlab CI 与 iOS 项目的教程列表:

iKK*_*iKK 5

这是我找到的有关如何为 iOS 项目设置 GitLab CI 的最佳教程。

以下是导致 iOS 项目成功使用 GitLab CI 的发现:

  • 尤其重要的是要认识到,对于 iOS 项目,您的 GitLab CI 必须注册为“shell”执行器(而不是“docker”)。
  • sudo另外,在处理 gitlab-runner 时不允许使用任何内容。(sudo无论如何都不允许,因为 Apple 希望您与 GitLab 建立用户模式连接(并且没有像 docker 或其他那样的系统模式)...

步骤如下:

gitlab-runner stop(如果之前已经进行过试验,则可选...)

gitlab-runner uninstall (如果之前已经进行过试验,则可选...)

gitlab-runner register \
  --non-interactive \
  --url "https://gitlab.com/" \
  --registration-token "ABCDEFG21sadfSAEGEAERE" \
  --description "MyApp runner with shell" \
  --tag-list ios \
  --executor "shell"
Run Code Online (Sandbox Code Playgroud)

(随意使用不同的标签。此外,令牌可以在 GitLab 页面-->设置-->CI/CD-->Runner 展开下找到)

gitlab-runner install

gitlab-runner start

此外,事实证明,我的 GitLab Pipeline 上的“权限被拒绝”错误与 GitLab 本身无关,而是由于我与 gitlab-runner 连接的 Mac 上的 Ruby 版本不匹配所致。

我能够在这篇文章的帮助下更新我的 Ruby 版本(即使用chruby)。关于如何在 Mac 上更新 Ruby,还有其他可能性。

重要的是要了解 GitLab 要求您的 Mac 具有稳定的 Ruby 环境。