Reputation: 8794
As a proof of concept, I successfully built a local Jenkins server on my MacBook (MacOS is Catalina) and the pipeline uses Fastlane scripts to clone, build, and distribute successfully.
Now, I have a Mac Server in our Data Center and I completed the same build-out and installed Jenkins. When I run the same pipeline, it fails, so I tried executing from the command line and it fails with this error:
google-api-client-0.38.0 requires ruby version ~> 2.4
Apparently, my install used ruby 3.0, so I followed recommendations to install rbenv and down level to 2.4. the installers were successful, but still the problem persists and uses ruby 3.0. The paths defined in my profiles look correct.
There are two key differences between my local server and the server in the data center that I can think of that may be influencing this problem:
xcode-select version 2373
; I would like to keep the IDEs off of this server, so there isn't a temptation to fix code on this dedicated Jenkins server.Any recommendations to further troubleshoot this installation?
Upvotes: 1
Views: 1585
Reputation: 1420
First, you probably will have to install Xcode, to use all of its tools (the CLI won't cut it). I recommend xcode-install to manage xcode versions via CLI. That is one key difference in your setup.
However, there're probably shenanigans with your $PATH environment within Jenkins. From what I understood from your description, you were able to run fastlane normally by invoking it via Terminal, but it won't work in Jenkins, is that right? Check the $PATH in Jenkins and make sure it matches the $PATH in your Terminal. rbenv and other ruby version managers require you to execute some startup code (e.g. eval "$(rbenv init -)"
in case of rbenv) before being able to use it, and then setting up the right $PATH is required to make everything work as expected (i.e. have it point at Ruby 2.4 instead of 3.0).
Upvotes: 1