GitLab CI с Fastlane и Cocoapods не работает - PullRequest
0 голосов
/ 27 марта 2019

Я не могу заставить GitLab CI работать с Fastlane и Cocoapods.

Вот сообщения об ошибках, которые я получаю во время Gitlab-CI:

enter image description here

[!] You cannot run CocoaPods as root.

Вот снимок экрана GitLab CI Log:

enter image description here

enter image description here

Вот мой регистрационный код gitlab-runner, который я записываю в терминал MacOS:

sudo gitlab-runner register \
  --non-interactive \
  --url "https://gitlab.com/" \
  --registration-token "ABCDEFG21sadfSAEGEAERE" \
  --description "MyApp runner with shell" \
  --tag-list ios \
  --executor "shell"

После этого я набираю внутри терминала:

sudo gitlab-runner start

и ...

sudo gitlab-runner run

После run cmd любой толчок git заставит GitLab CI запустить новый конвейер. Пока все хорошо :) 1033 *

Но через несколько секунд появляется вышеуказанная ошибка. И это связано с Cocoapods.

Как вы можете заставить Gitlab (и / или Fastlane) распознавать Podfile во время CI ??

Вот мой Fastfile:

update_fastlane

default_platform(:ios)

platform :ios do

    def install_pods
        cocoapods(
          clean: true,
          podfile: "./Podfile",
          try_repo_update_on_error: true
        )
    end

    lane :tests do
        install_pods()
        gym(configuration: "Release",
            workspace: "MyApp.xcworkspace",
            scheme: "MyApp",
            clean: true,
            output_name: "MyApp.ipa")  
        # increment_build_number
        scan(workspace: "MyApp.xcworkspace",
            devices: ["iPhone SE", "iPhone XS"],
            scheme: "MyAppTests")
    end

Я перепробовал множество других путей в Podfile и даже попытался запустить все в контейнере Docker. Но то же самое, ошибка [!] You cannot run CocoaPods as root остается. Что здесь не так?

Вот мой файл .gitlab-ci.yml:

stages:
  - unit_tests

variables:
  LC_ALL: "en_US.UTF-8"
  LANG: "en_US.UTF-8"

before_script:
  - gem install bundler
  - bundle install

unit_tests:
  dependencies: []
  stage: unit_tests
  artifacts:
    paths:
      - fastlane/screenshots
      - fastlane/logs
  script:
    - bundle exec fastlane tests
  tags:
    - ios

Любая помощь приветствуется. Как сделать так, чтобы подфайл был распознан CI ???

1 Ответ

0 голосов
/ 29 марта 2019

Я наконец нашел решение:

Также вашему gitlab-runner register не разрешено иметь sudo.

По некоторым причинам есть много учебных пособий, которые показывают по-разному (например, с sudo) - таких как это видео или другие ...

В любом случае, как @ Scriptable отметил, что на Mac вам абсолютно необходимо не использовать sudo!

Вот лучшее учебное пособие, которое я нашел о том, как Gitlab CI для iOS проекта.

...