feat(runtime): add gated multi-agent parallel execution #248
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: CI executables | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| paths: | |
| - ".github/workflows/**" | |
| - "plugins/**" | |
| - "benchmarks/**" | |
| - "pyproject.toml" | |
| - "tests/test_github_action_pins.py" | |
| jobs: | |
| codex-rig: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: ["ubuntu-latest", "macos-latest", "windows-latest"] | |
| timeout-minutes: 10 | |
| env: | |
| UV_PYTHON: "3.12" | |
| # Bytecode written beside a packaged file changes what the manifest checks hash over. | |
| PYTHONDONTWRITEBYTECODE: "1" | |
| steps: | |
| - name: 📥 Checkout | |
| uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 | |
| # The job-level UV_PYTHON is uv's own equivalent of --python, so no uv run below | |
| # repeats the version; the action input installs that interpreter. | |
| - name: 📦 Install uv and Python | |
| uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5 | |
| with: | |
| python-version: ${{ env.UV_PYTHON }} | |
| - name: 🐧 Verify Codex Rig entrypoints | |
| if: runner.os != 'Windows' | |
| shell: bash | |
| run: | | |
| uv run --only-group test python plugins/codex-rig/scripts/build_package.py --check | |
| uv run --only-group test python plugins/codex-rig/scripts/validate_package.py | |
| uv run --only-group test python plugins/codex-rig/shared/collect_pr.py --help | |
| # Native pwsh, not the Git Bash the job default supplies: it is the shell a Windows user | |
| # actually invokes these entrypoints from, and the one that surfaced the path defects. | |
| - name: 🪟 Verify native Codex Rig entrypoints | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| uv run --only-group test python plugins/codex-rig/scripts/build_package.py --check | |
| uv run --only-group test python plugins/codex-rig/scripts/validate_package.py | |
| uv run --only-group test python plugins/codex-rig/shared/collect_pr.py --help | |
| tests: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: ["ubuntu-latest", "macos-latest", "windows-latest"] | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] | |
| timeout-minutes: 25 | |
| steps: | |
| - name: 📥 Checkout | |
| uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 | |
| - name: 🟢 Set up Node | |
| uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 | |
| with: | |
| node-version: "20" | |
| # The action's python-version input sets UV_PYTHON, uv's equivalent of --python, | |
| # so the pytest run below does not repeat the matrix version. | |
| - name: 📦 Install uv and Python | |
| uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| # Pre-commit regenerates these manifests; CI catches a contributor who bypassed it. | |
| # Every OS leg matters: the manifest must hash byte-identically on Windows too. | |
| - name: 🧾 Verify blueprint manifest freshness | |
| run: uv run --only-group test python plugins/cc_foundry/bin/build_blueprint_manifest.py --scan-dir plugins --check | |
| - name: 🧪 Run plugin tests (Python bin/ + JS hooks) | |
| run: uv run --only-group test pytest -W error::DeprecationWarning --durations=100 |