Skip to content

V0.12.1 (#106)

V0.12.1 (#106) #109

Workflow file for this run

# 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

View workflow run for this annotation

GitHub Actions / .github/workflows/test_gaia_cli.yml

Invalid workflow file

error parsing called workflow ".github/workflows/test_gaia_cli.yml" -> "./.github/workflows/test_gaia_cli_windows.yml" (source branch with sha:84f0fd29c467c2c1e35b8bec534477d15b203fbe) : workflow is not reusable as it is missing a `on.workflow_call` trigger
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"