# This workflow will install Python dependencies and run tests with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions name: OpenAI on: pull_request: branches: ["main"] paths: - "autogen/**" - "test/**" - "notebook/agentchat_auto_feedback_from_code_execution.ipynb" - "notebook/agentchat_function_call.ipynb" - "notebook/agentchat_groupchat_finite_state_machine.ipynb" - ".github/workflows/openai.yml" permissions: {} # actions: read # checks: read # contents: read # deployments: read jobs: test: strategy: matrix: os: [ubuntu-latest] python-version: ["3.9", "3.10", "3.11", "3.12"] runs-on: ${{ matrix.os }} environment: openai1 services: redis: image: redis ports: - 6379:6379 options: --entrypoint redis-server steps: # checkout to pr branch - name: Checkout uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies run: | docker --version python -m pip install --upgrade pip wheel pip install -e. python -c "import autogen" pip install pytest-cov>=5 pytest-asyncio - name: Install packages for test when needed if: matrix.python-version == '3.9' run: | pip install docker pip install -e .[redis] - name: Coverage if: matrix.python-version == '3.9' env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }} AZURE_OPENAI_API_BASE: ${{ secrets.AZURE_OPENAI_API_BASE }} OAI_CONFIG_LIST: ${{ secrets.OAI_CONFIG_LIST }} run: | pytest test --ignore=test/agentchat/contrib --durations=10 --durations-min=1.0 - name: Coverage and check notebook outputs if: matrix.python-version != '3.9' env: OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }} AZURE_OPENAI_API_BASE: ${{ secrets.AZURE_OPENAI_API_BASE }} WOLFRAM_ALPHA_APPID: ${{ secrets.WOLFRAM_ALPHA_APPID }} OAI_CONFIG_LIST: ${{ secrets.OAI_CONFIG_LIST }} run: | pip install nbconvert nbformat ipykernel pytest test/test_notebook.py --durations=10 --durations-min=1.0 cat "$(pwd)/test/executed_openai_notebook_output.txt" - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 with: file: ./coverage.xml flags: unittests