如何为iOS项目设置GitLab CI

时间:2019-03-29 11:08:31

标签: ios continuous-integration gitlab cocoapods 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可以正常工作?

这是我发现的解释iOS项目中的Gitlab CI的教程列表:

1 个答案:

答案 0 :(得分:1)

我发现的

Here is the best tutorial on how to set up GitLab CI for an iOS-project

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

  • 特别重要的是要认识到,对于一个iOS项目, 您的GitLab CI必须注册为“ shell”执行程序(而不是“ docker”)。
  • 此外,在处理以下内容时,您不得使用任何sudo: gitlab-runner。 (由于苹果希望您sudo 与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"

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

gitlab-runner install

gitlab-runner start

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

我能够更新我的Ruby版本with the help of this post(即使用chruby)。还有其他方法可以在Mac上更新Ruby。

重要的是要了解GitLab需要Mac拥有稳定的Ruby环境。