1+ name : Cross-Repo Integration Tests
2+
3+ on :
4+ push :
5+ branches : [ main ]
6+ paths :
7+ - ' src/praisonai/praisonai/integration/**'
8+ - ' src/praisonai/tests/integration/test_aiui_*'
9+ - ' src/praisonai/pyproject.toml'
10+ pull_request :
11+ branches : [ main ]
12+ paths :
13+ - ' src/praisonai/praisonai/integration/**'
14+ - ' src/praisonai/tests/integration/test_aiui_*'
15+ - ' src/praisonai/pyproject.toml'
16+ workflow_dispatch :
17+
18+ jobs :
19+ cross-repo-integration :
20+ runs-on : ubuntu-latest
21+ timeout-minutes : 30
22+
23+ steps :
24+ - name : Checkout PraisonAI
25+ uses : actions/checkout@v4
26+ with :
27+ path : PraisonAI
28+ ref : ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
29+
30+ - name : Checkout PraisonAIUI
31+ uses : actions/checkout@v4
32+ with :
33+ repository : MervinPraison/PraisonAIUI
34+ path : PraisonAIUI
35+ ref : main
36+
37+ - name : Set up Python
38+ uses : actions/setup-python@v4
39+ with :
40+ python-version : ' 3.11'
41+
42+ - name : Install dependencies
43+ run : |
44+ python -m pip install --upgrade pip
45+ # Install PraisonAI packages in development mode
46+ cd PraisonAI/src/praisonai-agents
47+ pip install -e .
48+ cd ../praisonai
49+ pip install -e ".[ui,dev]"
50+ # Install PraisonAIUI in development mode
51+ cd ../../../PraisonAIUI
52+ pip install -e .
53+
54+ - name : Verify versions
55+ run : |
56+ python -c "import praisonaiagents; print(f'praisonaiagents: {praisonaiagents.__version__}')"
57+ python -c "import praisonai; print(f'praisonai: {praisonai.__version__}')"
58+ python -c "import praisonaiui; print(f'praisonaiui: {praisonaiui.__version__}')"
59+
60+ - name : Run PraisonAI integration tests
61+ run : |
62+ cd PraisonAI/src/praisonai
63+ python -m pytest tests/integration/test_aiui_* -v --timeout=300
64+
65+ - name : Run PraisonAIUI integration tests
66+ run : |
67+ cd PraisonAIUI
68+ if [ -f tests/integration/test_agentic_roundtrip.py ]; then
69+ python -m pytest tests/integration/test_agentic_roundtrip.py -v --timeout=300
70+ fi
71+ if [ -f tests/test_feature_sdk_backends.py ]; then
72+ python -m pytest tests/test_feature_sdk_backends.py -v --timeout=300
73+ fi
74+
75+ - name : Test Pattern C CLI
76+ run : |
77+ cd PraisonAI/src/praisonai
78+ # Test that ui-gateway command exists
79+ python -m praisonai serve --help | grep ui-gateway
80+
81+ - name : Test public API exports
82+ run : |
83+ cd PraisonAI/src/praisonai
84+ python -c "from praisonai import run_integrated_gateway; print('✓ run_integrated_gateway imported')"
85+ python -c "from praisonai import configure_host; print('✓ configure_host imported')"
86+
87+ - name : Integration smoke test
88+ env :
89+ PRAISONAI_TEST_MODE : " 1"
90+ PYTHONPATH : ${{ github.workspace }}/PraisonAI/src/praisonai:${{ github.workspace }}/PraisonAI/src/praisonai-agents:${{ github.workspace }}/PraisonAIUI
91+ run : |
92+ cd PraisonAI/src/praisonai
93+ python -c "
94+ import sys
95+ sys.path.insert(0, '.')
96+ from praisonai.integration.host_app import configure_host
97+ from praisonai import run_integrated_gateway
98+ print('✓ Integration imports successful')
99+
100+ # Test configure_host with new parameters
101+ try:
102+ configure_host(
103+ style='dashboard',
104+ context_paths=['AGENTS.md'],
105+ title='Test App'
106+ )
107+ print('✓ configure_host with new parameters works')
108+ except Exception as e:
109+ print(f'× configure_host failed: {e}')
110+ sys.exit(1)
111+ "
112+
113+ # Optional job with API key for agentic tests (if secret is available)
114+ agentic-integration :
115+ runs-on : ubuntu-latest
116+ timeout-minutes : 30
117+ if : ${{ vars.RUN_AGENTIC_TESTS == 'true' }}
118+ needs : cross-repo-integration
119+
120+ steps :
121+ - name : Checkout PraisonAI
122+ uses : actions/checkout@v4
123+ with :
124+ path : PraisonAI
125+ ref : ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
126+
127+ - name : Checkout PraisonAIUI
128+ uses : actions/checkout@v4
129+ with :
130+ repository : MervinPraison/PraisonAIUI
131+ path : PraisonAIUI
132+ ref : main
133+
134+ - name : Set up Python
135+ uses : actions/setup-python@v4
136+ with :
137+ python-version : ' 3.11'
138+
139+ - name : Install dependencies
140+ run : |
141+ python -m pip install --upgrade pip
142+ cd PraisonAI/src/praisonai-agents
143+ pip install -e .
144+ cd ../praisonai
145+ pip install -e ".[ui,dev]"
146+ cd ../../../PraisonAIUI
147+ pip install -e .
148+
149+ - name : Run agentic integration test
150+ env :
151+ OPENAI_API_KEY : ${{ secrets.OPENAI_API_KEY }}
152+ run : |
153+ cd PraisonAI/src/praisonai
154+ if [ -n "$OPENAI_API_KEY" ]; then
155+ python -m pytest tests/integration/test_aiui_host_agentic.py -v --timeout=600
156+ else
157+ echo "OPENAI_API_KEY not available, skipping agentic tests"
158+ fi
0 commit comments