CI: move all workflows to repository runners #23
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CppMega MLX self-hosted CI | |
| on: | |
| pull_request: | |
| branches: [main] | |
| push: | |
| branches: [main] | |
| workflow_dispatch: | |
| concurrency: | |
| group: cppmega-mlx-ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| mac-contracts: | |
| name: macOS MLX data, model, and eval contracts | |
| if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }} | |
| runs-on: [self-hosted, macOS, ARM64, cppmega-mlx-macos] | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - name: Run focused MLX contract suite | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| python_bin=/Volumes/external/sources/cppmega.mlx/.venv/bin/python | |
| test -x "${python_bin}" | |
| "${python_bin}" -m pytest -q \ | |
| tests/test_ast_fim.py \ | |
| tests/test_audit_sidecar_parquet.py \ | |
| tests/test_cpp_jsonl_generation_compile_eval.py \ | |
| tests/test_data_package_imports.py \ | |
| tests/test_domain_graph_routes.py \ | |
| tests/test_eval_domain_routed_codegen.py \ | |
| tests/test_inference_generation.py \ | |
| tests/test_megatron_indexed.py \ | |
| tests/test_pack_enriched_rows.py \ | |
| tests/test_streaming_conveyor_progress.py \ | |
| tests/test_process_commits_fail_loud.py \ | |
| tests/test_repair_packed_document_boundaries.py \ | |
| tests/test_workflow_runner_policy.py | |
| git diff --check | |
| linux-portable: | |
| name: Linux portable syntax and conveyor contracts | |
| if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }} | |
| runs-on: [self-hosted, Linux, X64, cppmega-mlx] | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 | |
| - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 | |
| with: | |
| python-version: "3.13" | |
| - name: Install portable test dependencies | |
| run: python -m pip install --disable-pip-version-check pytest numpy pyarrow tokenizers zstandard | |
| - name: Run portable script contracts | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| # cppmega.mlx imports Apple's MLX runtime at package import time. The | |
| # Linux runner exercises only portable scripts and deliberately skips | |
| # the macOS-only root conftest/package initialization. | |
| python -m pytest -q --noconftest \ | |
| tests/test_audit_sidecar_parquet.py \ | |
| tests/test_data_package_imports.py \ | |
| tests/test_streaming_conveyor_progress.py \ | |
| tests/test_process_commits_fail_loud.py \ | |
| tests/test_repair_packed_document_boundaries.py \ | |
| tests/test_workflow_runner_policy.py | |
| python -m compileall -q scripts tools/clang_indexer | |
| git diff --check |