Fastlane не работает на Jenkins google-api-client-0.38.0 требует рубиновой версии ~› 2.4

В качестве доказательства концепции я успешно построил локальный сервер Jenkins на своем MacBook (MacOS — это Catalina), и конвейер использует сценарии Fastlane для успешного клонирования, сборки и распространения.

Теперь у меня есть сервер Mac в нашем центре обработки данных, и я выполнил ту же сборку и установил Jenkins. Когда я запускаю тот же конвейер, он терпит неудачу, поэтому я попытался выполнить из командной строки, и он не работает с этой ошибкой:

google-api-client-0.38.0 requires ruby version ~> 2.4

Судя по всему, в моей установке использовался ruby ​​3.0, поэтому я последовал рекомендациям по установке rbenv и понижению уровня до 2.4. установщики были успешными, но проблема все еще сохраняется и используется ruby ​​​​3.0. Пути, определенные в моих профилях, выглядят правильно.

Есть два ключевых различия между моим локальным сервером и сервером в центре обработки данных, которые, как мне кажется, могут влиять на эту проблему:

  • Мой MacBook был обновлен до Catalina, где DataCenter iMac был собран с завода с Catalina. Обратите внимание, что версия ruby ​​для Apple установлена ​​вместе с Catalina.
  • У меня не установлен Xcode, только CLI xcode-select version 2373; Я бы хотел, чтобы IDE не использовались на этом сервере, чтобы не было соблазна исправить код на этом выделенном сервере Jenkins.

Любые рекомендации по дальнейшему устранению неполадок этой установки?


person mobibob    schedule 05.03.2021    source источник


Ответы (1)


Во-первых, вам, вероятно, придется установить Xcode, чтобы использовать все его инструменты (CLI не поможет). Я рекомендую xcode-install для управления версиями xcode через CLI. Это одно из ключевых отличий в вашей настройке.

Однако, вероятно, есть махинации с вашей средой $PATH в Jenkins. Насколько я понял из вашего описания, вы могли нормально запустить fastlane, вызвав его через терминал, но это не сработает в Jenkins, верно? Проверьте $PATH в Jenkins и убедитесь, что он соответствует $PATH в вашем терминале. rbenv и другие менеджеры версий ruby ​​требуют, чтобы вы выполнили некоторый код запуска (например, eval "$(rbenv init -)" в случае rbenv), прежде чем сможете его использовать, а затем необходимо настроить правильный $PATH, чтобы все работало как положено (т.е. чтобы он указывал на Руби 2.4 вместо 3.0).

person Roger Oba    schedule 10.03.2021
comment
На самом деле, мне в конечном итоге пришлось установить Xcode - как вы предложили. Остальные изменения пути, которые я внес, должны были выйти и переустановить бандлер, фастлейн и т. д. - person mobibob; 11.03.2021