Set up a new macOS CI node

William Woodall edited this page Aug 24, 2018 · 1 revision

Note: Last installed/updated on 2017-11-20 (Mac OS 10.13.1 High Sierra) and see this older (private) document for previous instructions:

https://docs.google.com/document/d/1J_8O7Q7eiixC-axyjP_bVpZSALyhn67Y1K_-SAw5eh0/edit


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

Install ssh-askpass via homebrew

$ brew tap theseal/ssh-askpass
$ brew install ssh-askpass

create ~/.bash_profile with this one line:

. ~/.bashrc

create ~/.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 "nobody@osrfoundation.org"
$ git config --global user.name "HOSTNAME"

Install ROS 2 Dependencies

Install them according to our install instructions:

https://github.com/ros2/ros2/wiki/OSX-Development-Setup

Including:

  • 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 /Applications/rti_...
    • Select the rti_security rtipkg (don’t bother with the openssl ones, we use system openssl)
  • 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.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.