| name: Python CI | |
| on: | |
| push: | |
| branches: [master] | |
| pull_request: | |
| branches: [master] | |
| concurrency: | |
| group: ${{ format('ci-{0}', format('pr-{0}', github.event.pull_request.number) || github.sha) }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| env: | |
| min-python-version: '3.10' | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v3 | |
| - name: Set up Python ${{ env.min-python-version }} | |
| uses: actions/setup-python@v2 | |
| with: | |
| python-version: ${{ env.min-python-version }} | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| - name: Lint with flake8 | |
| run: flake8 | |
| - name: Check black formatting | |
| run: black . --check | |
| if: success() || failure() | |
| - name: Check isort formatting | |
| run: isort . --check | |
| if: success() || failure() | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ['3.10', '3.11'] | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@v3 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v2 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| - name: Run unittest tests with coverage | |
| run: | | |
| pytest --cov=autogpt --without-integration --without-slow-integration | |
| - name: Generate coverage report | |
| run: | | |
| coverage report | |
| coverage xml | |
| if: success() || failure() | |