| name: Build and test |
| |
| on: |
| # Only on pushes to master or one of the release branches we build on push |
| push: |
| branches: |
| - master |
| - "[0-9].[0-9]+-branch" |
| tags: |
| # Build pull requests |
| pull_request: |
| |
| jobs: |
| test: |
| strategy: |
| matrix: |
| py: |
| - "3.7" |
| - "3.8" |
| - "3.9" |
| - "3.10" |
| - "pypy-3.8" |
| # Pre-release |
| - "3.11.0-alpha - 3.11.0" |
| os: |
| - "ubuntu-latest" |
| - "windows-latest" |
| - "macos-latest" |
| architecture: |
| - x64 |
| - x86 |
| include: |
| - py: "pypy-3.8" |
| toxenv: "pypy38" |
| exclude: |
| # Linux and macOS don't have x86 python |
| - os: "ubuntu-latest" |
| architecture: x86 |
| - os: "macos-latest" |
| architecture: x86 |
| |
| name: "Python: ${{ matrix.py }}-${{ matrix.architecture }} on ${{ matrix.os }}" |
| runs-on: ${{ matrix.os }} |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Setup python |
| uses: actions/setup-python@v2 |
| with: |
| python-version: ${{ matrix.py }} |
| architecture: ${{ matrix.architecture }} |
| - run: pip install tox |
| - name: Running tox with specific toxenv |
| if: ${{ matrix.toxenv != '' }} |
| env: |
| TOXENV: ${{ matrix.toxenv }} |
| run: tox |
| - name: Running tox for current python version |
| if: ${{ matrix.toxenv == '' }} |
| run: tox -e py |
| |
| coverage: |
| runs-on: ubuntu-latest |
| name: Validate coverage |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Setup python 3.10 |
| uses: actions/setup-python@v2 |
| with: |
| python-version: "3.10" |
| architecture: x64 |
| |
| - run: pip install tox |
| - run: tox -e py310,coverage |
| docs: |
| runs-on: ubuntu-latest |
| name: Build the documentation |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Setup python |
| uses: actions/setup-python@v2 |
| with: |
| python-version: "3.10" |
| architecture: x64 |
| - run: pip install tox |
| - run: tox -e docs |
| lint: |
| runs-on: ubuntu-latest |
| name: Lint the package |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Setup python |
| uses: actions/setup-python@v2 |
| with: |
| python-version: "3.10" |
| architecture: x64 |
| - run: pip install tox |
| - run: tox -e lint |