Skip to content

fix(core): retarget versioned shims to base dispatcher on interpreter… #610

fix(core): retarget versioned shims to base dispatcher on interpreter…

fix(core): retarget versioned shims to base dispatcher on interpreter… #610

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"