Skip to content

Restore Mac OSX CI support #661

@SeanCurtis-TRI

Description

@SeanCurtis-TRI

When upgrading to current platforms (Ubuntu 24.04, Mac OSX 14/15) we hit numerous issues with getting mac CI happy.

  1. Octomap had a number of defects that need to be addressed to get through AppleClang on mac. Sufficient fixes have been captured in this branch, ideally, we would merge that in to octomap to eliminate the obstacle.
  2. Passing efforts on getting to build under macos-14 failed. There may be a way to do that, but it's unclear at the time of this issue.
  3. We were able to get through configuration and build on macos-15. It required:
    • Using the octomap branch indicated in (1) above. See below for details.
    • Explicitly back eigen up to version 3.4.0 (and not the default 5.0.* that comes with macos-15). See below for details.
  4. Even with these changes to macos-15, there were still multiple test failures that need to be specifically resolved. The errors seem to largely come down to numerical equivalency in the operations.
  5. Once all of those are resolved, we'll need to make mac CI success part of the merge requirements again.

Diff for using patched octomap

diff --git a/ci/install_osx.sh b/ci/install_osx.sh
index 867493d..2394851 100755
--- a/ci/install_osx.sh
+++ b/ci/install_osx.sh
@@ -6,8 +6,11 @@ brew update > /dev/null
 brew install libccd
 
 # Octomap
-git clone https://github.com/OctoMap/octomap
+# Note: Octomap has a number of build defects on macOS. We're trying to push a
+# fix through to the main repo, but while we wait, we'll reference a forked
+# repo with the fixes.
+git clone https://github.com/SeanCurtis-TRI/octomap
 cd octomap
-git checkout tags/v1.8.0
+git checkout PR_correct_warnings
 mkdir build
 cd build

Diff for backing out Eigen to v3.4.0

diff --git a/ci/install_osx.sh b/ci/install_osx.sh
index 867493d..2394851 100755
--- a/ci/install_osx.sh
+++ b/ci/install_osx.sh
@@ -2,6 +2,11 @@ brew update > /dev/null
 
 brew install git
 brew install cmake
-brew install eigen
+#brew install eigen
+brew tap --force homebrew/core
+brew tap-new homebrew/local
+brew extract --version=3.4.0 eigen homebrew/local
+brew install homebrew/local/[email protected]
+brew pin [email protected]
 brew install libccd
 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions