Сбой Fastlane в Jenkins google-api-client-0.38.0 требует версии ruby ~> 2.4

#ruby #jenkins #macos-catalina #fastlane

#ruby #дженкинс #macos-catalina #fastlane

Вопрос:

В качестве доказательства концепции я успешно создал локальный сервер 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, где центр обработки данных iMac был построен на заводе-изготовителе с помощью Catalina. Обратите внимание, что вместе с Catalina устанавливается версия ruby для Apple.
  • У меня не установлен Xcode, только CLI xcode-select version 2373 ; Я бы хотел отключить IDE от этого сервера, чтобы не возникало соблазна исправить код на этом выделенном сервере Jenkins.

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

Ответ №1:

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

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

Комментарии:

1. На самом деле, в конечном счете мне действительно пришлось установить Xcode — как вы и предлагали. Остальные изменения пути, которые я внес, должны были выйти и переустановить bundler, fastlane и т. Д.