I had a dedicated mac mini that ran nothing but OSX, Xojo and Gitlab Runner (the app that GitLab uses to run things on machines other than itself in the CI/CD process).
Gitlab Runner would ALWAYS pickup the task.
I was using the IDE Communicator (or Build Communicator or whatever the name is called). And that application would launch 100% of the time.
I had GitLab Runner launch Xojo (IDE) prior to doing anything with the IDE Communicator and it had a long pause between the Xojo launch and the IDE communicator launch, to make sure that Xojo was up and running.
Once IDE Communicator was open, GitLab Runner would tell it to run an IDE script (basically build auotmation). the script would tell Xojo to open the source code (full path), then build it (compile), then Xojo IDE to exit (no saving)
that script would complete on the IDE Communicator side 90% of the time. and on the Xojo IDE side about 75% of the time.
when it would fail. I could go back into Gitlab and tell it to rerun the pipeline, and it would work 85% of those times. the other 15% of the times, I would have to delete ALL Xojo caches (for the IDE, communicator, feedback, etc) and make sure the git directory (source code directory) and the artifacts (the builds/partial builds) are all clean. and generally at this point had to restart the mac. to get it working again.
now I had a monitor on the mac mini, and the GitLab runner was running on the logged in console/desktop (not a background service) so I could watch IDE Communicator and the IDE do what it was doing. or not doing.
I got to the point where I got tired of “tweaking” the CI/CD stuff and trying to automate the builds.
the IDE Communicator v2 is much better than v1. Gregg took a lot of feedback from the community and made major strides at making it better. just not there yet.