openoperator / .github /workflows /openoperator-ci.yml
OpenOperator Deployer
Deploy source revision ef73a4b421f2d1ececca20f99c9118f4621c5e28
6918275
Raw History Blame Contribute Delete
3.97 kB
name: OpenOperator integration
on:
pull_request:
push:
branches: [main, develop, "codex/**"]
permissions:
contents: read
jobs:
focused-regression:
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: pip
- name: Install declared dependencies
run: python -m pip install -r requirements.txt -r requirements.dev.txt fonttools
- name: Install pinned supervisor test runtimes
run: |
python -m venv /tmp/venv-argus
/tmp/venv-argus/bin/pip install -c plugins/argus_supervisor/runtime/argus-constraints.txt git+https://github.com/microsoft/ArgusAgent.git@fdfeb715b0749db176c7d8b3212a717fb81087ba
python -m venv /tmp/venv-foreman
/tmp/venv-foreman/bin/pip install -c plugins/argus_supervisor/runtime/foreman-constraints.txt git+https://github.com/JsonLord/foreman-supervisor.git@381ca2de90af9efc2781a58055cc3028c7cabbb9
- name: Static checks
run: |
python -m compileall -q helpers api plugins/_goal plugins/argus_supervisor scripts agents/spynel extensions/python/monologue_start
bash -n scripts/qualify_openoperator_a2a.sh docker/run/fs/exe/huggingface-entrypoint.sh docker/run/fs/ins/copy_A0.sh docker/run/fs/ins/install_argus_supervisor.sh
git diff --check HEAD^ HEAD
- name: Require real Argus integration discovery (no skips)
run: |
python -m pytest -q plugins/argus_supervisor/tests/test_plugin_integration.py::test_real_profile_plugin_and_sync_startup_hook_are_discovered --junitxml=/tmp/argus-discovery.xml
python - <<'PYTHON'
import xml.etree.ElementTree as ET
cases = ET.parse('/tmp/argus-discovery.xml').findall('.//testcase')
assert len(cases) == 1, 'Critical integration test must execute exactly once'
assert not any(case.find(tag) is not None for case in cases for tag in ('skipped', 'failure', 'error'))
PYTHON
- name: Focused integration regression
env:
ARGUS_TEST_ARGUS_PYTHON: /tmp/venv-argus/bin/python
ARGUS_TEST_FOREMAN_PYTHON: /tmp/venv-foreman/bin/python
run: |
pytest -q \
plugins/_goal/tests \
plugins/argus_supervisor/tests \
tests/test_goal_state_contract.py \
tests/test_api_token_authority.py \
tests/test_hf_integration_auth.py \
tests/test_settings_probe.py \
tests/test_spynel.py \
tests/test_spynel_resolver.py \
tests/test_spynel_dispatch_integration.py \
tests/test_spynel_profile_guard.py \
tests/test_search_reliability.py \
tests/test_tinyfish_fallback.py \
tests/test_document_query_plugin.py \
tests/test_document_query_fallback.py \
tests/test_hf_deployment_control.py \
tests/test_hf_searxng_startup.py \
plugins/_chat_naming/tests \
tests/test_blocking_a2a.py \
tests/test_fasta2a_server.py \
tests/test_a2a_argus_supervisor.py \
tests/test_a2a_boundary.py \
tests/test_fasta2a_client.py \
tests/test_http_auth_csrf.py \
tests/test_sidebar_row_actions.py \
tests/test_prompt_improver.py \
tests/test_specialist_profiles.py \
tests/test_runtime_dockerized.py \
tests/test_settings_root_password.py \
tests/test_settings_mcp.py \
tests/test_hf_space_defaults.py \
tests/test_hf_smoke.py \
tests/test_memory_extension_hf.py \
tests/test_webui_icons.py \
tests/test_tiny_coder_model_binding.py \
tests/test_colab_a0.py \
tests/test_worktree_isolation_contract.py