/ .github / workflows / python-package.yml
python-package.yml
 1  name: Python Package (Multi-Version)
 2  
 3  on:
 4    schedule:
 5      - cron: '0 4 * * 1'  # Weekly Monday 4am UTC
 6    workflow_dispatch:
 7  
 8  jobs:
 9    build:
10      runs-on: ubuntu-latest
11      strategy:
12        fail-fast: false
13        matrix:
14          python-version: ["3.10", "3.11", "3.12"]
15  
16      steps:
17      - uses: actions/checkout@v4
18          with:
19            persist-credentials: false
20      - name: Set up Python ${{ matrix.python-version }}
21        uses: actions/setup-python@v5
22        with:
23          python-version: ${{ matrix.python-version }}
24  
25      - name: Set environment variables
26        run: |
27          echo "OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY || 'sk-test-key-for-github-actions-testing-only-not-real' }}" >> $GITHUB_ENV
28          echo "OPENAI_API_BASE=${{ secrets.OPENAI_API_BASE || 'https://api.openai.com/v1' }}" >> $GITHUB_ENV
29          echo "OPENAI_MODEL_NAME=${{ secrets.OPENAI_MODEL_NAME || 'gpt-5-nano' }}" >> $GITHUB_ENV
30          echo "PYTHONPATH=${{ github.workspace }}/src/praisonai-agents:$PYTHONPATH" >> $GITHUB_ENV
31  
32      - name: Install dependencies
33        run: |
34          cd src/praisonai
35          python -m pip install --upgrade pip
36          python -m pip install ."[ui,gradio,api,agentops,google,openai,anthropic,cohere,chat,code,realtime,call,crewai,autogen]"
37          python -m pip install duckduckgo_search pytest pytest-asyncio pytest-cov
38          python -m pip install "praisonaiagents[knowledge]"
39  
40      - name: Run tests
41        run: |
42          cd src/praisonai && python -m pytest tests/unit/ -v --tb=short --disable-warnings --timeout=60 || echo "Some tests failed"