V0.12.1 (#106) #109
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
| # Copyright(C) 2024-2025 Advanced Micro Devices, Inc. All rights reserved. | ||
| # SPDX-License-Identifier: MIT | ||
| # Main GAIA CLI testing workflow that coordinates platform-specific tests | ||
| # This workflow calls both Windows (full integration) and Linux (Lemonade-independent) tests | ||
| # Platform Coverage: Windows (full) + Linux (partial) + cross-platform validation | ||
| name: GAIA CLI Tests (All Platforms) | ||
| on: | ||
| workflow_call: | ||
| push: | ||
| branches: ["main"] | ||
| paths: | ||
| - "src/**" | ||
| - "tests/**" | ||
| - "setup.py" | ||
| - "pyproject.toml" | ||
| pull_request: | ||
| branches: ["main"] | ||
| types: [opened, synchronize, reopened, ready_for_review] | ||
| paths: | ||
| - "src/**" | ||
| - "tests/**" | ||
| - "setup.py" | ||
| - "pyproject.toml" | ||
| merge_group: | ||
| workflow_dispatch: | ||
| permissions: | ||
| contents: read | ||
| jobs: | ||
| # Run linting first (fast feedback) | ||
| lint: | ||
| name: Code Quality (Linting) | ||
| uses: ./.github/workflows/lint.yml | ||
| # Test Windows CLI with full Lemonade integration | ||
| test-windows: | ||
| name: Windows CLI Tests (Full Integration) | ||
| needs: lint | ||
| uses: ./.github/workflows/test_gaia_cli_windows.yml | ||
|
Check failure on line 43 in .github/workflows/test_gaia_cli.yml
|
||
| if: github.event_name != 'pull_request' || github.event.pull_request.draft == false || contains(github.event.pull_request.labels.*.name, 'ready_for_ci') | ||
| # Test Linux CLI with full Lemonade integration | ||
| test-linux: | ||
| name: Linux CLI Tests (Full Integration) | ||
| needs: lint | ||
| uses: ./.github/workflows/test_gaia_cli_linux.yml | ||
| if: github.event_name != 'pull_request' || github.event.pull_request.draft == false || contains(github.event.pull_request.labels.*.name, 'ready_for_ci') | ||
| # Test MCP Bridge functionality | ||
| test-mcp: | ||
| name: MCP Bridge Tests | ||
| needs: lint | ||
| uses: ./.github/workflows/test_mcp.yml | ||
| if: github.event_name != 'pull_request' || github.event.pull_request.draft == false || contains(github.event.pull_request.labels.*.name, 'ready_for_ci') | ||
| # Summary job that reports overall status | ||
| test-summary: | ||
| name: Test Summary | ||
| runs-on: ubuntu-latest | ||
| needs: [lint, test-windows, test-linux, test-mcp] | ||
| if: always() | ||
| steps: | ||
| - name: Check test results | ||
| run: | | ||
| echo "=== GAIA CLI Test Summary ===" | ||
| echo "Lint Status: ${{ needs.lint.result }}" | ||
| echo "Windows Tests Status: ${{ needs.test-windows.result }}" | ||
| echo "Linux Tests Status: ${{ needs.test-linux.result }}" | ||
| echo "MCP Tests Status: ${{ needs.test-mcp.result }}" | ||
| echo "" | ||
| # Determine overall status | ||
| if [[ "${{ needs.lint.result }}" == "success" && "${{ needs.test-windows.result }}" == "success" && "${{ needs.test-linux.result }}" == "success" && "${{ needs.test-mcp.result }}" == "success" ]]; then | ||
| echo "✅ All tests passed!" | ||
| echo "- Windows: Full CLI functionality with Lemonade integration" | ||
| echo "- Linux: Full CLI functionality with Lemonade integration" | ||
| echo "- MCP: HTTP-native bridge and protocol compliance" | ||
| echo "- Cross-platform: Code quality and compatibility" | ||
| else | ||
| echo "❌ Some tests failed:" | ||
| [[ "${{ needs.lint.result }}" != "success" ]] && echo " - Linting failed" | ||
| [[ "${{ needs.test-windows.result }}" != "success" ]] && echo " - Windows tests failed" | ||
| [[ "${{ needs.test-linux.result }}" != "success" ]] && echo " - Linux tests failed" | ||
| [[ "${{ needs.test-mcp.result }}" != "success" ]] && echo " - MCP tests failed" | ||
| exit 1 | ||
| fi | ||
| - name: Report test coverage | ||
| run: | | ||
| echo "" | ||
| echo "=== Test Coverage by Platform ===" | ||
| echo "🪟 Windows (Full Integration):" | ||
| echo " ✅ CLI installation and setup" | ||
| echo " ✅ Lemonade server integration" | ||
| echo " ✅ Core commands (chat, prompt, llm)" | ||
| echo " ✅ Audio features (talk command)" | ||
| echo " ✅ Evaluation tools" | ||
| echo " ✅ Summarizer CLI integration" | ||
| echo " ✅ Process management" | ||
| echo "" | ||
| echo "🐧 Linux (Full Integration):" | ||
| echo " ✅ CLI installation and setup" | ||
| echo " ✅ Lemonade server with Gemma model" | ||
| echo " ✅ Core commands (chat, prompt, llm)" | ||
| echo " ✅ Evaluation tools (eval, groundtruth, report)" | ||
| echo " ✅ Summarizer CLI integration" | ||
| echo " ✅ Cross-platform process management" | ||
| echo " ✅ Python import compatibility" | ||
| echo "" | ||
| echo "🌐 MCP Bridge (Cross-Platform):" | ||
| echo " ✅ HTTP-native bridge server" | ||
| echo " ✅ JSON-RPC protocol compliance" | ||
| echo " ✅ LLM agent integration" | ||
| echo " ✅ Tool registration and discovery" | ||
| echo " ✅ Error handling and recovery" | ||
| echo " ✅ CORS support for browser clients" | ||
| echo " ⏭️ Jira integration (skipped - requires auth)" | ||
| echo "" | ||
| echo "🎉 Full Platform Support Achieved!" | ||
| echo " 🔧 Future enhancements:" | ||
| echo " 🚧 Audio/TTS functionality testing" | ||
| echo " 🚧 NPU driver support (if available)" | ||
| echo " 🚧 Performance optimization" | ||