ros-install-osx icon indicating copy to clipboard operation
ros-install-osx copied to clipboard

Continuous Integration

Open mikepurvis opened this issue 8 years ago • 1 comments

Getting reliable CI for this in the past has been a challenge:

  • Travis has Mac builders, but they're single core and extremely slow. Furthermore, they come with a ton of stuff pre-installed, including multiple non-system, non-brewed Pythons, and a messed-up PATH var, which makes it altogether an environment that isn't super representative.
  • CircleCI has Mac builders, but they're missing XQuartz, which is a deal-breaker, and the service is paid, so I'd either need sponsorship from them or someone else willing to pick up the tab on that.
  • OSRF has in the past offered to run jobs on the infrastructure they use to build Gazebo bottles, but there hasn't been the inertia on either end to make it happen.
  • I (and others) have old Apple hardware that we could run in our basements, but it's a maintenance nightmare to set up the necessary virtualization tools for building across multiple OS X versions.

Would be delighted for any other thoughts or ideas on how to move this forward.

mikepurvis avatar Oct 20 '17 20:10 mikepurvis

Okay, I got Travis working again— here's an example build: https://travis-ci.org/mikepurvis/ros-install-osx/builds/290707198

It took 43 minutes, and that was only to install dependencies and build the 68 packages that make up the much reduced set of dependencies in the rviz tree. That's a valid test, but it probably also would be valuable:

  • To do that same test on 10.11 and 10.12 (and 10.13 once Travis has an image for it).
  • To test resolving/installing all of the dependencies that are part of desktop_full, even if that leaves no time to try actually building anything (will require a SKIP_BUILD envvar).
  • To build a dependency tree that links stuff against gazebo.
  • To build a dependency tree that links stuff against opencv.

Additionally, it would be great to be able to do some kind of simple runtime validation, specifically:

  • A trivial post-build smoke test, like spinning up the talker/listener nodes.
  • Importing/running python modules that have bindings to C++.
  • Validating that rviz is capable of fully starting up without crashing.

mikepurvis avatar Oct 21 '17 03:10 mikepurvis