Skip to content

Merge branch 'pr-2286' #5

Merge branch 'pr-2286'

Merge branch 'pr-2286' #5

Workflow file for this run

name: Python Tests
on:
push:
branches:
- master
pull_request:
types: [opened, synchronize, reopened]
permissions:
contents: read
jobs:
flake8:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Setup pip cache
uses: actions/cache@v6
id: pipcache
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
restore-keys: |
${{ runner.os }}-pip-flake8
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install flake8
- name: Lint with flake8
uses: liskin/gh-problem-matcher-wrap@v4
with:
linters: flake8
run: flake8 --extend-ignore=E203 faker tests
checkmanifest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Setup pip cache
uses: actions/cache@v6
id: pipcache
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
restore-keys: |
${{ runner.os }}-pip-checkmanifest
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install tox
- name: Check manifest
run: tox
env:
TOXENV: checkmanifest
test_class_order:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Check Test* class order in test files
run: python scripts/check_test_class_order.py
isort:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Setup pip cache
uses: actions/cache@v6
id: pipcache
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
restore-keys: |
${{ runner.os }}-pip-isort
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install isort
- name: Import order checking with isort
uses: liskin/gh-problem-matcher-wrap@v4
with:
linters: isort
run: isort --check --diff .
black:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Setup pip cache
uses: actions/cache@v6
id: pipcache
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
restore-keys: |
${{ runner.os }}-pip-black
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install tox
- name: Formatting with black
run: tox
env:
TOXENV: black
doc8:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Setup pip cache
uses: actions/cache@v6
id: pipcache
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
restore-keys: |
${{ runner.os }}-pip-pep8
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install tox
- name: Doc formatting
run: tox
env:
TOXENV: doc8
typing:
runs-on: ubuntu-latest
strategy:
matrix:
python:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"
steps:
- uses: actions/checkout@v7
- name: Setup pip cache
uses: actions/cache@v6
id: pipcache
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
restore-keys: |
${{ runner.os }}-pip-typing
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: |
python -m pip install "mypy<2"
- name: Static type checking with mypy
uses: liskin/gh-problem-matcher-wrap@v4
with:
linters: mypy
run: mypy --install-types --non-interactive --config mypy.ini faker
test_ubuntu:
runs-on: ubuntu-latest
needs: [flake8, isort, black, doc8, checkmanifest, typing, test_class_order]
strategy:
matrix:
python:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"
- "pypy-3.11"
steps:
- uses: actions/checkout@v7
- name: Setup pip cache
uses: actions/cache@v6
id: pipcache
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
restore-keys: |
${{ runner.os }}-pip-test_ubuntu
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python }}
- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y libjpeg-dev
- name: Install Tox and any other packages
run: python -m pip install tox
- name: pytest
uses: liskin/gh-problem-matcher-wrap@v4
with:
linters: pytest
run: tox -e py
env:
COVERALLS_PARALLEL: true
COVERALLS_FLAG_NAME: run-ubuntu-${{ matrix.python }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_SERVICE_NAME: github
test_windows:
runs-on: windows-latest
needs: [flake8, isort, black, doc8, checkmanifest, typing, test_class_order]
strategy:
matrix:
python:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
- "3.14"
arch: ["x86", "x64"]
steps:
- uses: actions/checkout@v7
- name: Setup pip cache
uses: actions/cache@v6
id: pipcache
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
restore-keys: |
${{ runner.os }}-pip-test_windows
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python }}
- name: Install Tox and any other packages
run: python -m pip install tox
- name: Run Tox
# Run tox using the version of Python in `PATH`
run: tox -e py
test_alpine:
runs-on: ubuntu-latest
needs: [flake8, isort, black, doc8, checkmanifest, typing, test_class_order]
steps:
- uses: actions/checkout@v7
- name: Setup pip cache
uses: actions/cache@v6
id: pipcache
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('setup.py') }}
restore-keys: |
${{ runner.os }}-pip-test_alpine
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.12'
- name: Install dependencies
run: |
python -m pip install tox==3.27.1 setuptools
- name: Run tests
run: tox
env:
TOXENV: alpine
TEST_ALPINE: 1