From 7b0a6d20501ac2b20aad56d9c5ad9c4317c65c1e Mon Sep 17 00:00:00 2001 From: JRoot Junior Date: Sat, 18 Nov 2023 21:43:16 +0200 Subject: [PATCH] Separate PyPy tests and disable Windows PyPy tests --- .github/workflows/pypy-tests.yml | 65 ++++++++++++++++++++++++++++++++ .github/workflows/tests.yml | 20 ++-------- 2 files changed, 68 insertions(+), 17 deletions(-) create mode 100644 .github/workflows/pypy-tests.yml diff --git a/.github/workflows/pypy-tests.yml b/.github/workflows/pypy-tests.yml new file mode 100644 index 00000000..e6c112cc --- /dev/null +++ b/.github/workflows/pypy-tests.yml @@ -0,0 +1,65 @@ +name: PyPy Tests + +on: + push: + branches: + - dev-3.x + paths: + - ".github/workflows/pypy-tests.yml" + - "aiogram/**" + - "tests/**" + - "codecov.yaml" + - "pyproject.toml" + pull_request: + branches: + - dev-3.x + paths: + - ".github/workflows/pypy-tests.yml" + - "aiogram/**" + - "tests/**" + - "pyproject.toml" + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + - macos-latest + # - windows-latest + python-version: + - 'pypy3.8' + - 'pypy3.9' + + defaults: + # Windows sucks. Force use bash instead of PowerShell + run: + shell: bash + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + cache: "pip" + cache-dependency-path: pyproject.toml + + - name: Install project dependencies + run: | + pip install -e .[dev,test,redis,proxy,i18n,fast] + + - name: Setup redis + uses: shogo82148/actions-setup-redis@v1 + with: + redis-version: 6 + + - name: Run tests + run: | + flags="" + pytest $flags diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4f5a47e9..a5228c6f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -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 }}