---
name: tests
on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
jobs:
  tests:
    name: ${{ matrix.python }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        python:
          - '3.11'
          - '3.10'
          - '3.9'
          - '3.8'
          - '3.7'
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python }}
      - uses: actions/cache@v1
        with:
          path: ~/.cache/pip
          key: pip|${{ hashFiles('setup.py') }}|${{ hashFiles('tox.ini') }}
      - run: pip install tox
      - run: tox -e py
  docs:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2
        with:
          python-version: '3.11'
      - uses: actions/cache@v1
        with:
          path: ~/.cache/pip
          key: pip|${{ hashFiles('setup.py') }}|${{ hashFiles('tox.ini') }}
      - run: pip install tox
      - run: tox -e docs
  style:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2
        with:
          python-version: '3.11'
      - uses: actions/cache@v1
        with:
          path: ~/.cache/pip
          key: pip|${{ hashFiles('setup.py') }}|${{ hashFiles('tox.ini') }}
      - uses: actions/cache@v1
        with:
          path: ~/.cache/pre-commit
          key: pre-commit|${{ hashFiles('.pre-commit-config.yaml') }}
      - run: pip install tox
      - run: tox -e style
