Cache Factory._find_provider_class module look-ups (#2112) #1585
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Python Tests | |
on: | |
push: | |
branches: | |
- master | |
pull_request_target: | |
types: [opened, synchronize, reopened] | |
permissions: | |
contents: read | |
jobs: | |
flake8: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup pip cache | |
uses: actions/cache@v4 | |
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@v5 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
python -m pip install flake8 | |
- name: Lint with flake8 | |
uses: liskin/gh-problem-matcher-wrap@v3 | |
with: | |
linters: flake8 | |
run: flake8 --extend-ignore=E203 faker tests | |
checkmanifest: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup pip cache | |
uses: actions/cache@v4 | |
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@v5 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
python -m pip install tox | |
- name: Check manifest | |
run: tox | |
env: | |
TOXENV: checkmanifest | |
isort: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup pip cache | |
uses: actions/cache@v4 | |
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@v5 | |
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@v3 | |
with: | |
linters: isort | |
run: isort --check --diff . | |
black: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup pip cache | |
uses: actions/cache@v4 | |
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@v5 | |
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@v4 | |
- name: Setup pip cache | |
uses: actions/cache@v4 | |
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@v5 | |
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.8", "3.9", "3.10", "3.11", "3.12"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup pip cache | |
uses: actions/cache@v4 | |
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@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install dependencies | |
run: | | |
python -m pip install mypy | |
- name: Static type checking with mypy | |
uses: liskin/gh-problem-matcher-wrap@v3 | |
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] | |
strategy: | |
matrix: | |
python: ["3.8", "3.9", "3.10", "3.11", "3.12", "pypy-3.10"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup pip cache | |
uses: actions/cache@v4 | |
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@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install Tox and any other packages | |
run: python -m pip install tox coveralls | |
- name: pytest | |
uses: liskin/gh-problem-matcher-wrap@v3 | |
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 | |
- name: Publish coverage | |
run: coveralls --service=github | |
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] | |
strategy: | |
matrix: | |
python: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
arch: ["x86", "x64"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup pip cache | |
uses: actions/cache@v4 | |
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@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Install Tox and any other packages | |
run: python -m pip install tox coveralls | |
- name: Run Tox | |
# Run tox using the version of Python in `PATH` | |
run: tox -e py | |
- name: Publish coverage | |
run: coveralls --service=github | |
env: | |
COVERALLS_PARALLEL: true | |
COVERALLS_FLAG_NAME: run-ubuntu-${{ matrix.python }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COVERALLS_SERVICE_NAME: github | |
test_alpine: | |
runs-on: ubuntu-latest | |
needs: [flake8, isort, black, doc8, checkmanifest, typing] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup pip cache | |
uses: actions/cache@v4 | |
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@v5 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
python -m pip install tox==3.27.1 setuptools | |
- name: Run tests | |
run: tox | |
env: | |
TOXENV: alpine | |
TEST_ALPINE: 1 | |
finish: | |
needs: [test_ubuntu, test_windows, test_alpine] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Coveralls Finished | |
uses: AndreMiras/coveralls-python-action@develop | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
parallel-finished: true |