#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 и т. Д.