Separate PyPy tests and disable Windows PyPy tests

This commit is contained in:
JRoot Junior 2023-11-18 21:43:16 +02:00
parent 82f9365180
commit 7b0a6d2050
No known key found for this signature in database
GPG key ID: 738964250D5FF6E2
2 changed files with 68 additions and 17 deletions

View file

@ -34,8 +34,6 @@ jobs:
- '3.10'
- '3.11'
- '3.12'
- 'pypy3.8'
- 'pypy3.9'
defaults:
# Windows sucks. Force use bash instead of PowerShell
@ -45,21 +43,13 @@ jobs:
runs-on: ${{ matrix.os }}
env:
# We disable some features for PyPy by this environment variable such as:
# Installation of `fast` extras: `uvloop` on PyPy is useless and may be even slower
# than the default loop;
# Coverage reports: code introspection disables any optimizations, so tests with
# coverage enabled are very slow on PyPy.
# More: https://www.pypy.org/performance.html
IS_PYPY: ${{ startswith(matrix.python-version, 'pypy') }}
# Windows has also some limitations:
# Windows has some limitations:
# Redis is not supported on GitHub Windows runners;
# Poetry installer doesn't work on Windows with PyPy.
IS_WINDOWS: ${{ startswith(matrix.os, 'windows') }}
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }}
uses: actions/setup-python@v4
@ -73,7 +63,6 @@ jobs:
pip install -e .[dev,test,redis,proxy,i18n,fast]
- name: Lint code
if: "env.IS_PYPY == 'false'"
run: |
ruff --output-format=github aiogram examples
mypy aiogram
@ -86,15 +75,12 @@ jobs:
redis-version: 6
- name: Run tests
if: "env.IS_PYPY == 'false' && env.IS_WINDOWS == 'false'"
run: |
flags=""
[[ "$IS_PYPY" == "false" ]] && flags="$flags --cov=aiogram --cov-config .coveragerc --cov-report=xml"
flags="$flags --cov=aiogram --cov-config .coveragerc --cov-report=xml"
[[ "$IS_WINDOWS" == "false" ]] && flags="$flags --redis redis://localhost:6379/0"
pytest $flags
- name: Upload coverage data
if: "env.IS_PYPY == 'false'"
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}