Add rsloop as backend for asyncio tests. #3033
Workflow file for this run
This file contains hidden or 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 suite | |
| on: | |
| push: | |
| branches: [master] | |
| pull_request: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| changed-files: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| workflow-changed: ${{ steps.changed-files.outputs.workflow_any_changed }} | |
| pyproject-changed: ${{ steps.changed-files.outputs.src_any_changed }} | |
| src-changed: ${{ steps.changed-files.outputs.src_any_changed }} | |
| tests-changed: ${{ steps.changed-files.outputs.tests_any_changed }} | |
| docs-changed: ${{ steps.changed-files.outputs.doc_any_changed }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Get changed files by category | |
| id: changed-files | |
| uses: tj-actions/changed-files@v47 | |
| with: | |
| files_yaml: | | |
| workflow: | |
| - .github/workflows/test.yml | |
| pyproject: | |
| - pyproject.toml | |
| src: | |
| - src/** | |
| tests: | |
| - tests/** | |
| doc: | |
| - README.rst | |
| - docs/** | |
| pyright: | |
| runs-on: ubuntu-latest | |
| needs: changed-files | |
| if: | | |
| ${{ | |
| (needs.changed-files.outputs.workflow-changed == 'true') | |
| || (needs.changed-files.outputs.src-changed == 'true') | |
| }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Set up Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: 3.x | |
| - uses: actions/cache@v6 | |
| with: | |
| path: ~/.cache/pip | |
| key: pip-pyright | |
| - name: Install dependencies | |
| run: pip install -e . pyright | |
| - name: Run pyright | |
| run: pyright --ignoreexternal --verifytypes anyio | |
| test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest] | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.14t", "3.15", "pypy3.11-v7.3.23"] | |
| extras: ["[trio]"] | |
| lowest-bound: [false] | |
| include: | |
| - os: macos-latest | |
| python-version: "3.10" | |
| extras: "[trio]" | |
| - os: macos-latest | |
| python-version: "3.14" | |
| extras: "[trio]" | |
| - os: windows-latest | |
| python-version: "3.10" | |
| extras: "[trio]" | |
| - os: windows-latest | |
| python-version: "3.14" | |
| extras: "[trio]" | |
| - name: only asyncio | |
| os: ubuntu-latest | |
| python-version: "3.14" | |
| extras: "" | |
| - name: oldest dependencies | |
| os: ubuntu-latest | |
| python-version: "3.10" | |
| extras: "[trio]" | |
| lowest-bound: true | |
| runs-on: ${{ matrix.os }} | |
| needs: changed-files | |
| if: | | |
| ${{ | |
| (needs.changed-files.outputs.workflow-changed == 'true') | |
| || (needs.changed-files.outputs.pyproject-changed == 'true') | |
| || (needs.changed-files.outputs.src-changed == 'true') | |
| || (needs.changed-files.outputs.tests-changed == 'true') | |
| }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| cache: pip | |
| cache-dependency-path: pyproject.toml | |
| - name: Install the project and its dependencies | |
| if: matrix.lowest-bound == false | |
| run: pip install --group test -e .${{ matrix.extras }} | |
| - name: Install the project and its dependencies (lowest bound) | |
| if: matrix.lowest-bound == true | |
| run: | | |
| pip install uv | |
| uv pip install --system --resolution lowest-direct --group test -e .${{ matrix.extras }} | |
| - name: Patch /etc/hosts | |
| if: runner.os != 'Windows' | |
| run: | | |
| echo "1.2.3.4 xn--fa-hia.de" | sudo tee -a /etc/hosts | |
| echo "5.6.7.8 fass.de" | sudo tee -a /etc/hosts | |
| - name: Patch C:\Windows\System32\drivers\etc\hosts | |
| if: runner.os == 'Windows' | |
| run: | | |
| Add-Content -Path C:\Windows\System32\drivers\etc\hosts -Value "1.2.3.4 xn--fa-hia.de" | |
| Add-Content -Path C:\Windows\System32\drivers\etc\hosts -Value "5.6.7.8 fass.de" | |
| - name: Test with pytest | |
| run: coverage run -m pytest -v | |
| timeout-minutes: 10 | |
| env: | |
| PYTEST_DISABLE_PLUGIN_AUTOLOAD: 1 | |
| - name: Generate coverage report | |
| run: coverage xml | |
| - name: Trust Coveralls Homebrew tap (Homebrew 6 requirement) | |
| if: runner.os == 'macOS' | |
| run: brew trust coverallsapp/coveralls | |
| - name: Upload Coverage | |
| uses: coverallsapp/github-action@v2 | |
| with: | |
| parallel: true | |
| file: coverage.xml | |
| docs: | |
| runs-on: ubuntu-latest | |
| needs: changed-files | |
| if: | | |
| ${{ | |
| (needs.changed-files.outputs.workflow-changed == 'true') | |
| || (needs.changed-files.outputs.pyproject-changed == 'true') | |
| || (needs.changed-files.outputs.src-changed == 'true') | |
| || (needs.changed-files.outputs.docs-changed == 'true') | |
| }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.11" | |
| cache: pip | |
| cache-dependency-path: pyproject.toml | |
| - name: Install the project and its dependencies | |
| run: pip install --group doc -e . | |
| - name: Build documentation | |
| run: sphinx-build -W docs build/sphinx | |
| coveralls: | |
| name: Finish Coveralls | |
| needs: test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Finished | |
| uses: coverallsapp/github-action@v2 | |
| with: | |
| parallel-finished: true |