Skip to content

feat(runtime): add gated multi-agent parallel execution #248

feat(runtime): add gated multi-agent parallel execution

feat(runtime): add gated multi-agent parallel execution #248

Workflow file for this run

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