|
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() |
|
|