Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Set up a new macOS CI node
Note: Last installed/updated on 2017-11-20 (Mac OS 10.13.1 High Sierra) and see this older (private) document for previous instructions:
Install macOS High Sierra
Install: APFS case-sensitive Post-install: No Siri, no location services, no cloud anything, no analytics, no filevault disk encryption.
Setup SSH/VNC for Remote Access
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"
ROS 2 CI Host Setup
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 "email@example.com" $ git config --global user.name "HOSTNAME"
Install ROS 2 Dependencies
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)
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.
Setting up the Jenkins Workspace and Agent
$ 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.