How to setup a macOS Jenkins node¶
Table of Contents
Last installed/updated on 2017-11-20 (Mac OS 10.13.1 High Sierra) and see this older (private) document for previous instructions.
Install: APFS case-sensitive Post-install: No Siri, no location services, no cloud anything, no analytics, no filevault disk encryption.
Make sure you don’t use too long of a password. That makes VNC auth fail in bizarre ways. In particular, VNC auth limits you to 8 characters.
- Go to: Apple->System Preferences->Sharing
- set hostname to something reasonable
- check “Remote Login”
- check “Screen Sharing”
- add Terminal to the dock
- Go to: Apple->System Preferences->Energy Saver
- set sleep to never
- uncheck everything
- Go to: Apple->Security
- click lock to unlock it
- “Allow Apps from app store and verified developers”
- uncheck “Require password after 5 minutes” box
- uncheck “Disable automatic login”
Install XCode tools:
$ xcode select --install
Install JDK for Jenkins.
Easiest way is to type
java at the terminal and let Apple link you to Oracle’s JDK download.
I installed the latest JDK 8 (withholding Java 9 for now).
Install Homebrew following instructions at https://brew.sh
ssh-askpass via homebrew
$ brew tap theseal/ssh-askpass $ brew install ssh-askpass
~/.bash_profile with this one line:
~/.bashrc with one line:
export ROS_DOMAIN_ID=XXX # where XXX is chosen from this document
Set up dummy git names:
$ git config --global user.email "firstname.lastname@example.org" $ git config --global user.name "HOSTNAME"
Install them according to our install instructions.
- brew packages
- pip packages
- the optional RTI Connext and OpenSplice packages
- everything but downloading the source and building ROS 2 (unless you want to do so for testing the setup)
brew install sip pyqt5
Fix some path names when looking for sip stuff during install (see ROS 1 wiki):
ln -s /usr/local/share/sip/Qt5 /usr/local/share/sip/PyQt5
brew install graphviz
python3 -m pip install pygraphviz pydot
brew link --force qt
This is the quickest solution but may cause issues when upgrading Qt or if other packages are expecting Qt 4. Another option is to update your
CMAKE_PREFIX_PATHto include the Qt install location:
$ export PATH="$(brew --prefix qt)/bin:$PATH" $ export CMAKE_PREFIX_PATH="$(brew --prefix qt):$CMAKE_PREFIX_PATH"
RTI Connext Specific Instructions¶
- The Open Robotics license is here (private repo): https://github.com/osrf/rticonnextdds-src/blob/license/rti_license.dat
- Open the RTI launcher application
- In the RTI launcher, open the file dialog to choose the license file.
- Install it for all users.
- Click the Installation tab
- Click RTI Package installer
- Navigate to the connext extracted directory (usually something like
- Select the
rti_security rtipkg(don’t bother with the openssl ones, we use system openssl)
- Select the
- Set the shared memory parameters from https://community.rti.com/kb/osx510
- Do not bother to reboot yet.
$ mkdir jenkins jenkins-agent $ cd jenkins-agent $ wget http://ci.ros2.org/jnlpJars/slave.jar
Copy the jenkins agent plist from https://gist.github.com/nuclearsandwich/c9546e76ba63767bc1025c393e85235b
Edit the file to match the jnlp url and secret of the host you’re setting up. You may need to create a new agent if you’re not re-imaging an existing one.
$ mkdir ~/Library/LaunchAgents $ cp ~/jenkins-agent/org.ros2.ci.jenkins-agent.plist ~/Library/LaunchAgents $ launchctl load -w ~/Library/LaunchAgents/org.ros2.ci.jenkins-agent.plist
Reboot! You should be good to go, run some test CI jobs.