Just a concept of gather-like method #4070
Workflow file for this run
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: test | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
workflow_dispatch: | |
permissions: | |
contents: read | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
tests: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.9', '3.10', '3.11', '3.12'] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install poetry | |
run: | | |
curl -sSL "https://install.python-poetry.org" | python | |
# Adding `poetry` to `$PATH`: | |
echo "$HOME/.poetry/bin" >> $GITHUB_PATH | |
- name: Install dependencies | |
run: | | |
poetry config virtualenvs.in-project true | |
poetry install --all-extras | |
poetry run pip install -U pip | |
- name: Run tests | |
run: | | |
poetry run flake8 . | |
# In order to make `exclude` option work, we need to separate the checks | |
# of returns and its tests into two separated commands | |
poetry run mypy --enable-error-code=unused-awaitable returns | |
poetry run mypy tests | |
# Different python versions are covered differently: | |
poetry run pytest returns docs/pages tests | |
poetry run doc8 -q docs | |
poetry run codespell returns tests docs typesafety README.md CONTRIBUTING.md CHANGELOG.md | |
poetry run poetry check | |
poetry run pip check | |
poetry run python -m slotscheck returns --verbose | |
- name: Upload coverage to Codecov | |
if: matrix.python-version == 3.11 | |
uses: codecov/codecov-action@v5 | |
with: | |
file: ./coverage.xml | |
typesafety-tests: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.9', '3.10', '3.11', '3.12'] | |
shard: [0, 1, 2, 3] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install poetry | |
run: | | |
curl -sSL "https://install.python-poetry.org" | python | |
# Adding `poetry` to `$PATH`: | |
echo "$HOME/.poetry/bin" >> $GITHUB_PATH | |
- name: Install dependencies | |
run: | | |
poetry config virtualenvs.in-project true | |
poetry install --all-extras | |
poetry run pip install -U pip | |
- name: Run typesafety tests | |
run: | | |
poetry run pytest typesafety \ | |
--num-shards=4 --shard-id=${{ matrix.shard }} \ | |
-p no:cov -o addopts="" --mypy-ini-file=setup.cfg |