feat(go): Electron desktop app for workspace #1544
Workflow file for this run
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: Python Tests | |
| on: | |
| push: | |
| branches: [ main, master, develop, test-ci ] | |
| pull_request: | |
| branches: [ main, master, develop ] | |
| workflow_dispatch: # Allows manual triggering from GitHub UI | |
| jobs: | |
| # ----------------------------------------------------------------------- | |
| # Fast client tests — lightweight base install only (no gRPC/crypto/MCP) | |
| # Runs ONM unit tests + workspace backend tests | |
| # ----------------------------------------------------------------------- | |
| client-tests: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| strategy: | |
| matrix: | |
| python-version: ['3.10', '3.11', '3.12'] | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - uses: actions/cache@v3 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ runner.os }}-pip-client-${{ hashFiles('**/pyproject.toml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pip-client- | |
| - name: Install dependencies (base only) | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install pytest pytest-asyncio pytest-aiohttp pytest-mock | |
| pip install -e . | |
| pip install -r workspace/backend/requirements.txt | |
| - name: Test ONM primitives | |
| run: pytest --tb=short -v tests/test_onm_addressing.py tests/test_onm_events.py tests/test_onm_pipeline.py | |
| - name: Test workspace backend | |
| env: | |
| PYTHONPATH: workspace/backend:src | |
| run: pytest --tb=short -v workspace/backend/tests/ | |
| # ----------------------------------------------------------------------- | |
| # Full SDK tests — includes gRPC, crypto, MCP, OpenAI deps | |
| # Runs all tests under tests/ (a2a, grpc, http, mods, etc.) | |
| # ----------------------------------------------------------------------- | |
| sdk-tests: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| strategy: | |
| matrix: | |
| python-version: ['3.10', '3.11', '3.12'] | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - uses: actions/cache@v3 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ runner.os }}-pip-sdk-${{ hashFiles('**/pyproject.toml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pip-sdk- | |
| - name: Install dependencies (full SDK) | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install pytest pytest-cov pytest-asyncio pytest-aiohttp pytest-mock | |
| pip install -e ".[sdk]" | |
| - name: Test a2a | |
| env: | |
| PYTHONHASHSEED: "0" | |
| GRPC_ENABLE_FORK_SUPPORT: "1" | |
| GRPC_POLL_STRATEGY: "poll" | |
| run: pytest --tb=short -v tests/a2a | |
| - name: Test agents | |
| env: | |
| PYTHONHASHSEED: "0" | |
| GRPC_ENABLE_FORK_SUPPORT: "1" | |
| GRPC_POLL_STRATEGY: "poll" | |
| run: pytest --tb=short -v tests/agents | |
| - name: Test external_access | |
| env: | |
| PYTHONHASHSEED: "0" | |
| GRPC_ENABLE_FORK_SUPPORT: "1" | |
| GRPC_POLL_STRATEGY: "poll" | |
| run: pytest --tb=short -v tests/external_access | |
| - name: Test grpc | |
| env: | |
| PYTHONHASHSEED: "0" | |
| GRPC_ENABLE_FORK_SUPPORT: "1" | |
| GRPC_POLL_STRATEGY: "poll" | |
| run: pytest --tb=short -v tests/grpc | |
| - name: Test http | |
| env: | |
| PYTHONHASHSEED: "0" | |
| GRPC_ENABLE_FORK_SUPPORT: "1" | |
| GRPC_POLL_STRATEGY: "poll" | |
| run: pytest --tb=short -v tests/http | |
| - name: Test integration | |
| env: | |
| PYTHONHASHSEED: "0" | |
| GRPC_ENABLE_FORK_SUPPORT: "1" | |
| GRPC_POLL_STRATEGY: "poll" | |
| OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
| DEFAULT_LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
| DEFAULT_LLM_MODEL_NAME: gpt-4o-mini | |
| DEFAULT_LLM_PROVIDER: openai | |
| run: pytest --tb=short -v tests/integration | |
| - name: Test lms | |
| env: | |
| PYTHONHASHSEED: "0" | |
| GRPC_ENABLE_FORK_SUPPORT: "1" | |
| GRPC_POLL_STRATEGY: "poll" | |
| run: pytest --tb=short -v tests/lms | |
| - name: Test mods | |
| env: | |
| PYTHONHASHSEED: "0" | |
| GRPC_ENABLE_FORK_SUPPORT: "1" | |
| GRPC_POLL_STRATEGY: "poll" | |
| run: pytest --tb=short -v tests/mods | |
| - name: Test network | |
| env: | |
| PYTHONHASHSEED: "0" | |
| GRPC_ENABLE_FORK_SUPPORT: "1" | |
| GRPC_POLL_STRATEGY: "poll" | |
| run: pytest --tb=short -v tests/network | |
| # Studio tests disabled — Studio is not actively maintained | |
| # - name: Test studio | |
| # env: | |
| # PYTHONHASHSEED: "0" | |
| # GRPC_ENABLE_FORK_SUPPORT: "1" | |
| # GRPC_POLL_STRATEGY: "poll" | |
| # run: pytest --tb=short -v tests/studio | |
| - name: Test utils | |
| env: | |
| PYTHONHASHSEED: "0" | |
| GRPC_ENABLE_FORK_SUPPORT: "1" | |
| GRPC_POLL_STRATEGY: "poll" | |
| run: pytest --tb=short -v tests/utils | |
| - name: Test workspace | |
| env: | |
| PYTHONHASHSEED: "0" | |
| GRPC_ENABLE_FORK_SUPPORT: "1" | |
| GRPC_POLL_STRATEGY: "poll" | |
| run: pytest --tb=short -v tests/workspace | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v3 | |
| with: | |
| file: ./coverage.xml | |
| fail_ci_if_error: false |