Skip to content

Commit c490515

Browse files
Merge pull request #2 from RobotFlow-Labs/main
Main
2 parents d3c50a4 + b0a1557 commit c490515

66 files changed

Lines changed: 4497 additions & 556 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/mlx-macos.yml

Lines changed: 90 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,98 @@ jobs:
3939
run: uv venv --python 3.11 .venv
4040

4141
- name: Install MLX smoke dependencies
42-
run: uv pip install --python .venv/bin/python mlx pytest pytest-mock toml
42+
run: |
43+
uv pip install --python .venv/bin/python \
44+
-e source/isaaclab[macos-mlx,dev] \
45+
-e source/isaaclab_rl[dev]
46+
47+
- name: Prepare benchmark artifact directory
48+
run: mkdir -p logs/benchmarks/mlx
49+
50+
- name: Run public install smoke
51+
run: |
52+
PYTHONPATH=.:source/isaaclab:source/isaaclab_rl .venv/bin/python - <<'PY'
53+
import json
54+
from pathlib import Path
55+
56+
from isaaclab.backends import resolve_runtime_selection, set_runtime_selection
57+
58+
set_runtime_selection(resolve_runtime_selection(compute_backend="mlx", sim_backend="mac-sim", device="cpu"))
59+
60+
import isaaclab
61+
import isaaclab.backends.mac_sim
62+
import isaaclab.controllers
63+
import isaaclab.envs.mdp.actions.actions_cfg
64+
import isaaclab.envs.mdp.actions.rmpflow_actions_cfg
65+
import isaaclab.sim
66+
import isaaclab.sim.converters
67+
import isaaclab.sim.schemas
68+
import isaaclab.sim.spawners.from_files
69+
import isaaclab_rl.sb3
70+
import isaaclab_rl.skrl
71+
from isaaclab.backends.mac_sim import MacCartpoleEnv
72+
73+
env = MacCartpoleEnv()
74+
observations, _ = env.reset()
75+
payload = {
76+
"modules": [
77+
"isaaclab",
78+
"isaaclab.backends.mac_sim",
79+
"isaaclab.controllers",
80+
"isaaclab.envs.mdp.actions.actions_cfg",
81+
"isaaclab.envs.mdp.actions.rmpflow_actions_cfg",
82+
"isaaclab.sim",
83+
"isaaclab.sim.converters",
84+
"isaaclab.sim.schemas",
85+
"isaaclab.sim.spawners.from_files",
86+
"isaaclab_rl.sb3",
87+
"isaaclab_rl.skrl",
88+
],
89+
"policy_shape": list(observations["policy"].shape),
90+
"package": isaaclab.__name__,
91+
}
92+
out_path = Path("logs/benchmarks/mlx/install_import_smoke.json")
93+
out_path.write_text(json.dumps(payload, indent=2, sort_keys=True) + "\n", encoding="utf-8")
94+
print(payload["policy_shape"])
95+
PY
4396
4497
- name: Run MLX backend smoke tests
4598
run: |
46-
PYTHONPATH=.:source/isaaclab .venv/bin/pytest \
99+
PYTHONPATH=.:source/isaaclab:source/isaaclab_rl .venv/bin/pytest \
47100
scripts/tools/test/test_bootstrap_isaac_sources.py \
48101
source/isaaclab/test/backends/test_runtime.py \
49-
source/isaaclab/test/backends/test_mac_cartpole.py -q
102+
source/isaaclab_rl/test/test_import_safety.py \
103+
source/isaaclab/test/backends/test_portability_utils.py \
104+
source/isaaclab/test/backends/test_mac_cartpole.py \
105+
source/isaaclab/test/backends/test_mac_cartpole_showcase.py \
106+
source/isaaclab/test/backends/test_mac_cart_double_pendulum.py \
107+
source/isaaclab/test/backends/test_mac_quadcopter.py -q
108+
109+
- name: Run MLX cart-double-pendulum smoke script
110+
run: |
111+
PYTHONPATH=.:source/isaaclab .venv/bin/python \
112+
scripts/reinforcement_learning/mlx/play_cart_double_pendulum.py \
113+
--num-envs 8 --episodes 1 --max-steps 256 --random-actions
114+
115+
- name: Run MLX quadcopter smoke script
116+
run: |
117+
PYTHONPATH=.:source/isaaclab .venv/bin/python \
118+
scripts/reinforcement_learning/mlx/play_quadcopter.py \
119+
--num-envs 8 --episodes 1 --episode-length-s 0.5 --max-steps 256 --thrust-action 0.2 --no-random-actions
120+
121+
- name: Run MLX benchmark smoke
122+
run: |
123+
PYTHONPATH=.:source/isaaclab .venv/bin/python \
124+
scripts/benchmarks/mlx/benchmark_mac_tasks.py \
125+
--tasks cartpole cart-double-pendulum quadcopter \
126+
--num-envs 64 \
127+
--steps 128 \
128+
--json-out logs/benchmarks/mlx/smoke.json
129+
130+
- name: Upload MLX smoke artifacts
131+
if: always()
132+
uses: actions/upload-artifact@v4
133+
with:
134+
name: mlx-macos-smoke-${{ github.run_id }}
135+
path: logs/benchmarks/mlx
136+
if-no-files-found: warn

0 commit comments

Comments
 (0)