|
- # 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: Build
-
- on:
- push:
- branches: ["main"]
- paths:
- - "autogen/**"
- - "test/**"
- - ".github/workflows/build.yml"
- - "setup.py"
- pull_request:
- branches: ["main"]
- merge_group:
- types: [checks_requested]
-
- concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref }}
- cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
- permissions: {}
- jobs:
- build:
- runs-on: ${{ matrix.os }}
- env:
- AUTOGEN_USE_DOCKER: ${{ matrix.os != 'ubuntu-latest' && 'False' }}
- strategy:
- fail-fast: false
- matrix:
- os: [ubuntu-latest, macos-latest, windows-latest]
- python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
- 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: |
- python -m pip install --upgrade pip wheel
- pip install -e .
- python -c "import autogen"
- pip install pytest mock
- pip install jupyter-client ipykernel
- python -m ipykernel install --user --name python3
- - name: Set AUTOGEN_USE_DOCKER based on OS
- shell: bash
- run: |
- if [[ ${{ matrix.os }} != ubuntu-latest ]]; then
- echo "AUTOGEN_USE_DOCKER=False" >> $GITHUB_ENV
- fi
- - name: Test with pytest skipping openai tests
- if: matrix.python-version != '3.10' && matrix.os == 'ubuntu-latest'
- run: |
- pytest test --skip-openai
- - name: Test with pytest skipping openai and docker tests
- if: matrix.python-version != '3.10' && matrix.os != 'ubuntu-latest'
- run: |
- pytest test --skip-openai --skip-docker
- - name: Coverage
- if: matrix.python-version == '3.10'
- run: |
- pip install -e .[test,redis]
- coverage run -a -m pytest test --ignore=test/agentchat/contrib --skip-openai
- coverage xml
- - name: Upload coverage to Codecov
- if: matrix.python-version == '3.10'
- uses: codecov/codecov-action@v3
- with:
- file: ./coverage.xml
- flags: unittests
|