Используйте менеджеры версия для систем на CI где нет docker:
К примеру сборка мобильного React-Native приложения на OSX.
Обязательно:
- rvm.io
- github.com/nvm-sh/nvm
А в проект:
- .nvmrc
- .ruby-version
В pipeline:
nvm use
rvm use
Fastlane также ставим используя bundler
bundle install
bundle exec fastlane -v
bundle exec fastlane ios beta
Старайтесь не ставить софт глобально, ибо в будущем сложнее будет перевести мобильное приложение на новую версию nodejs/rvm/fastlane.
Иногда бывает один OSX CI worker на большое кол-во проектов, и если вы поставите что-то глобально, а в будущем попытаетесь обновить, то можете сломать всем CI за раз.
Если вы один разработчик и часто делаете релизы, могу посоветовать поставить CI worker у себя на компьютере внутри виртуализации (если нет возможности). К примеру я использую @ParallelsCares и с мощным компьютером даже не замечаю как у меня в фоне внутри виртуалки идет build.