name: Run the test suite on: push: branches: [main] pull_request: workflow_dispatch: schedule: - cron: '0 6 * * 1' jobs: test: strategy: fail-fast: false matrix: os: [ubuntu-latest] python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "pypy-3.8", "pypy-3.9"] include: - os: macos-latest python-version: "3.7" - os: windows-latest python-version: "3.7" - os: macos-latest python-version: "3.11" - os: windows-latest python-version: "3.11" - os: macos-latest python-version: "pypy-3.9" - os: windows-latest python-version: "pypy-3.9" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} allow-prereleases: true - uses: actions/cache@v3 with: path: ~/.cache/pip key: pip-test-${{ matrix.python-version }}-${{ matrix.os }} - name: Install the project run: pip install --no-binary=wheel . - name: Install test dependencies run: pip install .[test] coverage[toml] - name: Include SDist check dependencies if: matrix.python-version == '3.11' run: pip install build flit - name: Test with pytest run: | coverage run -m pytest coverage xml env: PYTHONWARNDEFAULTENCODING: 1 - name: Send coverage data to Codecov uses: codecov/codecov-action@v3 with: file: coverage.xml