Skip to content

Add macOS CI runners (mypy + tests on Apple Silicon) #1483

@dimos-bot

Description

@dimos-bot

Goal

Add macOS CI to the test matrix so we catch platform-specific issues (imports, path handling, binary deps) before they hit developers on Macs.

Approach

  • Add a parallel macos-tests job to the existing docker.yml workflow
  • Use GitHub-hosted macos-latest runner (M1 arm64, 3 CPU, 7GB RAM, 14GB SSD)
  • No Docker containers — install uv directly, sync deps, run tests on bare metal
  • Skip extras that have no macOS wheels: cuda, cpu, dds, unitree
  • Run mypy + pytest (same markers as Linux: not (tool or mujoco))
  • Gated on check-changes.outputs.tests == true (same trigger as Linux tests)

Storage Budget (14GB SSD)

  • macOS image + preinstalled tools: ~5GB
  • Repo checkout (no LFS): ~300MB
  • Python venv (no cuda/nvidia): ~4-5GB
  • Headroom: ~4GB

Extras Installed

--all-extras --no-extra cuda --no-extra cpu --no-extra dds --no-extra unitree

This gives us: agents, base, dev, docker, drone, manipulation, misc, perception, psql, sim, visualization, web.

Not in Scope

  • macOS Intel runners (can add later)
  • LFS data tests (pointer files only on CI, data tests are @slow)
  • ROS-dependent tests (ROS not available on macOS)

Risk

  • 14GB SSD is tight with torch (~800MB macOS CPU). Monitor disk usage.
  • macOS minutes cost 10x Linux on private repos. Keep test suite lean.

Synced from DIM-696

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