Gui: Add IntentFrame Control Plane (port 9720) with operator UI and Docker test harness #56
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: PR | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| concurrency: | |
| group: pr-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| unit-tests: | |
| name: Unit tests (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| - macos-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.14" | |
| - name: Install Python workspace | |
| run: uv sync --all-packages | |
| - name: Install script ref resolution tests | |
| run: bash tests/install/test_ref_resolution.sh | |
| - name: Hermes adapter unit tests | |
| run: uv run --directory integrations/hermes/adapter python tests/test_adapter.py | |
| - name: Hermes governance unit tests | |
| run: | | |
| uv run --directory integrations/hermes/shared python tests/test_governance.py | |
| uv run --directory integrations/hermes/shared python tests/test_governance_template.py | |
| - name: Backend validate adapter unit tests | |
| run: | | |
| uv run --package if-integration-backend python if-integration-backend/tests/test_validate_adapter.py | |
| uv run --package if-integration-backend python if-integration-backend/tests/test_dynamic_bundle.py | |
| - name: E2e bridge_test agent sync | |
| run: uv run --package if-integration-backend python tests/agents/test_bridge_test_agent_sync.py | |
| - name: Hermes plugin unit tests | |
| run: | | |
| uv run --with httpx --with pyyaml --package intentframe-integrations-cli python tests/hermes_plugin/test_gate.py | |
| uv run --with httpx --with pyyaml --package intentframe-integrations-cli python tests/hermes_plugin/test_registry_hook.py | |
| uv run --package intentframe-integrations-cli python tests/hermes_plugin/test_integrate.py | |
| uv run --package intentframe-integrations-cli python tests/hermes_plugin/test_builtin_preload.py | |
| - name: Integrations CLI unit tests | |
| run: | | |
| uv run --package intentframe-integrations-cli python tests/intentframe_integrations/test_runtime_lifecycle.py | |
| uv run --package intentframe-integrations-cli python tests/intentframe_integrations/test_integration_pack.py | |
| uv run --package intentframe-integrations-cli python tests/intentframe_integrations/test_cli_start.py | |
| uv run --package intentframe-integrations-cli python tests/intentframe_integrations/test_adapter_lifecycle.py | |
| uv run --package intentframe-integrations-cli python tests/intentframe_integrations/test_hermes_install.py | |
| uv run --package intentframe-integrations-cli python tests/intentframe_integrations/test_pack_install.py | |
| uv run --package intentframe-integrations-cli python tests/intentframe_integrations/test_governance_edit.py | |
| uv run --package intentframe-integrations-cli python tests/intentframe_integrations/test_policy_contract.py | |
| uv run --package intentframe-integrations-cli python tests/intentframe_integrations/test_policy_manage.py | |
| uv run --package intentframe-integrations-cli python tests/intentframe_integrations/test_governance_runtime_contract.py | |
| uv run --package intentframe-integrations-cli python tests/intentframe_integrations/test_make_catalog_yaml.py | |
| uv run --package intentframe-integrations-cli python tests/intentframe_integrations/test_scoped_governance_yaml.py | |
| uv run --package intentframe-integrations-cli python tests/intentframe_integrations/test_actions_manifest.py | |
| - name: Control plane unit tests | |
| run: | | |
| uv run --package intentframe-control-plane python tests/intentframe_control_plane/test_lifecycle.py | |
| uv run --package intentframe-control-plane python tests/intentframe_control_plane/test_read_models.py | |
| uv run --package intentframe-control-plane python tests/intentframe_control_plane/test_server.py | |
| - name: Hermes gateway unit tests | |
| run: | | |
| uv run --package intentframe-integrations-cli python tests/hermes_gateway/test_isolation.py | |
| uv run --package intentframe-integrations-cli python tests/hermes_gateway/test_cli_runner.py | |
| uv run --package intentframe-integrations-cli python tests/hermes_gateway/test_hermes_reference_contract.py | |
| uv run --package intentframe-integrations-cli python tests/hermes_gateway/test_api_client.py | |
| uv run --package intentframe-integrations-cli python tests/hermes_gateway/test_governed_tool_coverage.py | |
| uv run --package intentframe-integrations-cli python tests/hermes_gateway/test_toolsets_contract.py | |
| uv run --package intentframe-integrations-cli python tests/hermes_gateway/test_provider_request_contract.py | |
| typescript: | |
| name: TypeScript build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| - name: Install and build | |
| run: | | |
| npm ci | |
| npm run build | |
| test -f if-integration-clients/typescript/dist/index.js | |
| cd intentframe-control-plane/web && npm ci && npm run build | |
| test -f ../src/intentframe_control_plane/static/index.html | |
| docker-install: | |
| name: Docker install (curl | bash) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install script bootstrap Docker test | |
| run: bash tests/install/test_installer_bootstrap_docker.sh | |
| - name: curl | bash install (GitHub ref) | |
| env: | |
| ORG: ${{ github.event.pull_request.head.repo.owner.login || github.repository_owner }} | |
| REPO: ${{ github.event.pull_request.head.repo.name || github.event.repository.name }} | |
| REF: ${{ github.head_ref || github.ref_name }} | |
| run: bash tests/install/test_installer_curl_docker.sh | |