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"