1010 - " tests/fixtures/build_e2e_matrix.py"
1111 - " tests/fixtures/tokenizers/**"
1212 - " tests/fixtures/parquet/**"
13+ - " scripts/install_self_hosted_e2e_python.sh"
1314 - " .github/workflows/e2e-matrix.yml"
1415 pull_request :
1516 branches : [main]
1617 paths :
1718 - " cppmega_v4/**"
1819 - " vbgui/**"
1920 - " tests/fixtures/build_e2e_matrix.py"
21+ - " scripts/install_self_hosted_e2e_python.sh"
22+ - " .github/workflows/e2e-matrix.yml"
2023 schedule :
2124 # Nightly full run — includes the mini-train matrix on macOS.
2225 - cron : " 0 4 * * *"
@@ -26,6 +29,10 @@ concurrency:
2629 group : e2e-matrix-${{ github.ref }}
2730 cancel-in-progress : true
2831
32+ env :
33+ CPPMEGA_MLX_LM_CHECKOUT : /Volumes/external/sources/mlx-lm
34+ CPPMEGA_MLX_LM_COMMIT : 8618587943181787d33bac4468d3088e80202b3f
35+
2936jobs :
3037 # On every push/PR: smoke matrix (912 cells). The backend imports MLX, so
3138 # this runs on the repository's persistent Apple Silicon runner.
6269 echo "VBGUI_E2E_BACKEND_PORT=$((port_base + port_offset))" >> "$GITHUB_ENV"
6370 echo "VBGUI_E2E_FRONTEND_PORT=$((port_base + 10 + port_offset))" >> "$GITHUB_ENV"
6471 - name : Python deps
65- run : |
66- "$VBGUI_E2E_PYTHON" -m pip install --disable-pip-version-check \
67- -e ".[gui,parquet,widget]"
68- "$VBGUI_E2E_PYTHON" - <<'PY'
69- from cppmega_mlx.training.native_optim import status
70- native_status = status()
71- if not native_status.get("available", False):
72- raise RuntimeError(native_status.get("reason", "native optimizer extension unavailable"))
73- PY
72+ run : scripts/install_self_hosted_e2e_python.sh
7473 - name : Generate fixtures
7574 run : |
7675 "$VBGUI_E2E_PYTHON" tests/fixtures/build_e2e_matrix.py
@@ -134,15 +133,7 @@ jobs:
134133 port_offset=8
135134 echo "VBGUI_E2E_BACKEND_PORT=$((port_base + port_offset))" >> "$GITHUB_ENV"
136135 echo "VBGUI_E2E_FRONTEND_PORT=$((port_base + 10 + port_offset))" >> "$GITHUB_ENV"
137- - run : |
138- "$VBGUI_E2E_PYTHON" -m pip install --disable-pip-version-check \
139- -e ".[gui,parquet,widget]"
140- "$VBGUI_E2E_PYTHON" - <<'PY'
141- from cppmega_mlx.training.native_optim import status
142- native_status = status()
143- if not native_status.get("available", False):
144- raise RuntimeError(native_status.get("reason", "native optimizer extension unavailable"))
145- PY
136+ - run : scripts/install_self_hosted_e2e_python.sh
146137 - run : |
147138 "$VBGUI_E2E_PYTHON" tests/fixtures/build_e2e_matrix.py
148139 - working-directory : vbgui
@@ -201,15 +192,7 @@ jobs:
201192 port_offset=9
202193 echo "VBGUI_E2E_BACKEND_PORT=$((port_base + port_offset))" >> "$GITHUB_ENV"
203194 echo "VBGUI_E2E_FRONTEND_PORT=$((port_base + 10 + port_offset))" >> "$GITHUB_ENV"
204- - run : |
205- "$VBGUI_E2E_PYTHON" -m pip install --disable-pip-version-check \
206- -e ".[gui,parquet,widget]"
207- "$VBGUI_E2E_PYTHON" - <<'PY'
208- from cppmega_mlx.training.native_optim import status
209- native_status = status()
210- if not native_status.get("available", False):
211- raise RuntimeError(native_status.get("reason", "native optimizer extension unavailable"))
212- PY
195+ - run : scripts/install_self_hosted_e2e_python.sh
213196 - run : |
214197 "$VBGUI_E2E_PYTHON" tests/fixtures/build_e2e_matrix.py
215198 - working-directory : vbgui
0 commit comments