fix(core): retarget versioned shims to base dispatcher on interpreter… #610
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: "🎪 Demo Matrix Test (All Demos + Python Versions)" | |
| on: | |
| push: | |
| branches: [ development ] | |
| pull_request: | |
| branches: [ development ] | |
| workflow_dispatch: | |
| # Tests that need real GPU/large model downloads are skipped on GitHub-hosted | |
| # runners. They run on self-hosted (chaos-heavy-self-hosted) where the hardware | |
| # and pre-downloaded weights are available. | |
| env: | |
| SKIP_GPU_TESTS: "true" # set to false on self-hosted steps that override it | |
| jobs: | |
| # ───────────────────────────────────────────────────────────────────────────── | |
| # 1. SYNTAX CHECK (fast gate — no daemon needed) | |
| # ───────────────────────────────────────────────────────────────────────────── | |
| syntax-check: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', '3.15'] | |
| name: "Syntax Check - Python ${{ matrix.python }}" | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Set up Python ${{ matrix.python }} | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| allow-prereleases: true | |
| - name: Install omnipkg | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e . | |
| - name: Basic imports (catch syntax errors) | |
| run: | | |
| python -c "import omnipkg" | |
| python -c "from omnipkg import cli" | |
| omnipkg --version | |
| 8pkg --version | |
| syntax-check-py37: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| name: "Syntax Check - Python 3.7 (Docker)" | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Syntax check in Python 3.7 Docker | |
| run: | | |
| docker run --rm -v $(pwd):/workspace -w /workspace python:3.7-slim bash -c " | |
| python -m pip install --upgrade pip | |
| pip install -e . | |
| python -c 'import omnipkg' | |
| python -c 'from omnipkg import cli' | |
| 8pkg --version | |
| " | |
| # ───────────────────────────────────────────────────────────────────────────── | |
| # 2. DEMO MATRIX (GitHub-hosted runners — no GPU, no huge models) | |
| # | |
| # Demos that require GPU / TF / PyTorch weight downloads are skipped here. | |
| # They run on self-hosted in the chaos-heavy job below. | |
| # | |
| # Skipped demos on GitHub-hosted: | |
| # 4 — TensorFlow (too large / needs GPU) | |
| # 8 — Quantum Multiverse Warp (concurrent GPU installs) | |
| # 11 — Chaos Theory Stress Test (torture test, self-hosted only) | |
| # ───────────────────────────────────────────────────────────────────────────── | |
| demo-matrix: | |
| needs: [syntax-check, syntax-check-py37] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python: ['3.8', '3.11', '3.14'] | |
| demo: [1, 2, 3, 5, 6, 7, 9, 10] | |
| # Excluded from GitHub-hosted: 4 (TF), 8 (GPU multiverse), 11 (chaos) | |
| name: "Demo ${{ matrix.demo }} - Py${{ matrix.python }}" | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: 🧨 Nuke build artifacts | |
| run: | | |
| sudo rm -rf dist/ build/ *.egg-info src/*.egg-info .omnipkg .pytest_cache | |
| rm -rf ~/.local/omnipkg ~/.config/omnipkg | |
| echo "✅ Clean slate." | |
| - name: Set up Python ${{ matrix.python }} | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| allow-prereleases: true | |
| - name: Install omnipkg | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -e . | |
| - name: Run Demo ${{ matrix.demo }} | |
| timeout-minutes: 10 | |
| continue-on-error: true | |
| run: 8pkg demo ${{ matrix.demo }} --verbose | |
| - name: Show logs on failure | |
| if: failure() | |
| run: 8pkg daemon logs --lines 100 || true | |
| # ───────────────────────────────────────────────────────────────────────────── | |
| # 3. DEMO MATRIX — Python 3.7 (Docker, same demo exclusions as above) | |
| # ───────────────────────────────────────────────────────────────────────────── | |
| demo-matrix-py37: | |
| needs: syntax-check-py37 | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| demo: [1, 2, 3, 5, 6, 7, 9, 10] | |
| name: "Demo ${{ matrix.demo }} - Py3.7 (Docker)" | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Run Demo ${{ matrix.demo }} in Python 3.7 Docker | |
| run: | | |
| docker run --rm -e CI=true \ | |
| -v $(pwd):/workspace -w /workspace \ | |
| python:3.7-slim bash -c " | |
| python -m pip install --upgrade pip | |
| pip install -e . | |
| mkdir -p ~/.config/omnipkg | |
| echo '{\"interactive\": false, \"auto_confirm\": true}' > ~/.config/omnipkg/config.json | |
| 8pkg demo ${{ matrix.demo }} --verbose || true | |
| " | |
| # ───────────────────────────────────────────────────────────────────────────── | |
| # 4. CHAOS SCENARIOS (GitHub-hosted, Python 3.11) | |
| # | |
| # GPU/model-heavy scenarios excluded here — they run on self-hosted below. | |
| # Excluded from GitHub-hosted: | |
| # 11 — TensorFlow Resurrection (needs GPU + large download) | |
| # 12 — JAX vs Torch (needs GPU) | |
| # 13 — PyTorch Lightning Storm (runs out of space — self-hosted only) | |
| # 15 — Isolation Strategy Bench (self-hosted only, by design) | |
| # 20 — GPU Resident Pipeline (GPU) | |
| # 21 — GPU Resident Pipeline 2 (GPU) | |
| # ───────────────────────────────────────────────────────────────────────────── | |
| chaos-individual: | |
| needs: [syntax-check, syntax-check-py37] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| scenario: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14, 16, 17, 18, 19, 22, 23] | |
| name: "Chaos ${{ matrix.scenario }} - Py3.11" | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Set up Python 3.11 | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.11' | |
| - name: Install omnipkg | |
| run: pip install -e . | |
| - name: Run Chaos Scenario ${{ matrix.scenario }} | |
| timeout-minutes: 8 | |
| continue-on-error: true | |
| run: 8pkg stress-test ${{ matrix.scenario }} --verbose | |
| - name: Daemon status / logs on failure | |
| if: failure() | |
| run: | | |
| 8pkg daemon status || true | |
| 8pkg daemon logs --lines 50 || true | |
| # ───────────────────────────────────────────────────────────────────────────── | |
| # 5. CHAOS 13 (Docker — needs disk space, workflow_dispatch only) | |
| # ───────────────────────────────────────────────────────────────────────────── | |
| chaos-13-docker: | |
| if: github.event_name == 'workflow_dispatch' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| name: "Chaos 13 (Docker - Needs Space)" | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Free up disk space | |
| run: | | |
| sudo rm -rf /usr/share/dotnet /opt/ghc /usr/local/share/boost | |
| df -h | |
| - name: Run Chaos 13 in Docker (Python 3.11) | |
| run: | | |
| docker run --rm -v $(pwd):/workspace:z -w /workspace python:3.11-slim bash -c " | |
| pip install -e . | |
| 8pkg stress-test 13 --verbose || true | |
| " | |
| # ───────────────────────────────────────────────────────────────────────────── | |
| # 6. HEAVY / GPU CHAOS — self-hosted runner | |
| # | |
| # Also runs the GPU demos (4, 8, 11) that were skipped in the matrix above. | |
| # Uses miniforge3 (not miniconda3 — that's the actual path on this machine). | |
| # ───────────────────────────────────────────────────────────────────────────── | |
| chaos-heavy-self-hosted: | |
| needs: [syntax-check, syntax-check-py37] | |
| runs-on: [self-hosted, linux, x64] | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # Heavy chaos scenarios | |
| - task: stress-test | |
| id: 13 | |
| name: "Chaos 13 - PyTorch Lightning Storm" | |
| - task: stress-test | |
| id: 15 | |
| name: "Chaos 15 - Isolation Strategy Benchmark" | |
| # GPU-dependent demos skipped on GitHub-hosted | |
| - task: demo | |
| id: 4 | |
| name: "Demo 4 - TensorFlow" | |
| - task: demo | |
| id: 8 | |
| name: "Demo 8 - Quantum Multiverse Warp" | |
| - task: demo | |
| id: 11 | |
| name: "Demo 11 - Chaos Theory Stress" | |
| name: "${{ matrix.name }} (Self-Hosted)" | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Set up isolated venv (same pattern as cross-platform build) | |
| run: | | |
| # Use the evocoder_env Python directly — no conda activate needed. | |
| # This mirrors exactly what the working cross-platform build test does. | |
| EVOCODER_PY="$HOME/miniforge3/envs/evocoder_env/bin/python3.11" | |
| if [ -f "$EVOCODER_PY" ]; then | |
| BASE_PY="$EVOCODER_PY" | |
| elif command -v python3.11 >/dev/null 2>&1; then | |
| BASE_PY=python3.11 | |
| else | |
| BASE_PY=python3 | |
| fi | |
| echo "Using Python: $BASE_PY ($($BASE_PY --version))" | |
| rm -rf .venv | |
| $BASE_PY -m venv .venv | |
| source .venv/bin/activate | |
| python -m pip install --upgrade pip | |
| pip install -e . | |
| # Export the venv's bin dir so all subsequent steps can use it | |
| echo "$PWD/.venv/bin" >> $GITHUB_PATH | |
| - name: Run ${{ matrix.task }} ${{ matrix.id }} | |
| timeout-minutes: 20 | |
| continue-on-error: true | |
| run: 8pkg ${{ matrix.task }} ${{ matrix.id }} --verbose | |
| - name: Daemon status / logs on failure | |
| if: failure() | |
| run: | | |
| 8pkg daemon status || true | |
| 8pkg daemon logs --lines 50 || true | |
| - name: Cleanup | |
| if: always() | |
| run: | | |
| 8pkg daemon stop || true | |
| pkill -f "_work/omnipkg/omnipkg/.venv" || true | |
| # ───────────────────────────────────────────────────────────────────────────── | |
| # 7. PYPI RELEASE GATE | |
| # ───────────────────────────────────────────────────────────────────────────── | |
| pypi-gate: | |
| name: "✅ PyPI Release Gate" | |
| needs: | |
| - syntax-check | |
| - syntax-check-py37 | |
| - demo-matrix | |
| - demo-matrix-py37 | |
| - chaos-individual | |
| - chaos-heavy-self-hosted | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/') | |
| steps: | |
| - name: All tests passed | |
| run: | | |
| echo "🎉 All demos passed on Python 3.7, 3.8, 3.11, 3.14!" | |
| echo "✅ Ready for PyPI release" |