# This workflow will install Python dependencies, run tests and lint 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: - 'flaml/autogen/**' - 'test/autogen/**' - 'notebook/autogen_openai_completion.ipynb' - 'notebook/autogen_chatgpt_gpt4.ipynb' - '.github/workflows/openai.yml' jobs: test: strategy: matrix: os: [ubuntu-latest] python-version: ["3.9", "3.10", "3.11"] runs-on: ${{ matrix.os }} environment: openai steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install packages and dependencies run: | docker --version python -m pip install --upgrade pip wheel pip install -e .[autogen,blendsearch] python -c "import flaml" pip install coverage pytest datasets - name: Install packages for test when needed if: matrix.python-version == '3.9' run: | pip install docker - name: Install packages for MathChat when needed if: matrix.python-version != '3.11' run: | pip install -e .[mathchat] - name: Install packages for RetrieveChat when needed if: matrix.python-version != '3.11' run: | pip install -e .[retrievechat] - 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: | coverage run -a -m pytest test/autogen coverage xml - 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 coverage run -a -m pytest test/autogen/test_notebook.py coverage xml cat "$(pwd)/test/autogen/executed_openai_notebook_output.txt" - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 with: file: ./coverage.xml flags: unittests