name: Python Tests on: push: pull_request: jobs: pre-commit: name: pre-commit runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 - uses: pre-commit/action@v2.0.0 with: extra_args: --all-files --hook-stage=manual build: # supercharge/mongodb-github-action requires containers so we don't test other platforms runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-20.04] python-version: ["3.7", "3.11", "pypy-3.8"] name: CPython ${{ matrix.python-version }}-${{ matrix.os }} steps: - uses: actions/checkout@v2 - name: Setup Python uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} cache: 'pip' cache-dependency-path: 'pyproject.toml' - name: Install dependencies run: | pip install -q tox - name: Start MongoDB uses: supercharge/mongodb-github-action@1.7.0 with: mongodb-version: 4.4 - name: Run tests run: | tox -m test doctest: runs-on: ubuntu-latest name: DocTest steps: - uses: actions/checkout@v2 - name: Setup Python uses: actions/setup-python@v2 with: python-version: "3.8" cache: 'pip' cache-dependency-path: 'pyproject.toml' - name: Install dependencies run: | pip install -q tox - name: Start MongoDB uses: supercharge/mongodb-github-action@1.7.0 with: mongodb-version: 4.4 - name: Run tests run: | tox -m doc-test typing: name: Typing Tests runs-on: ubuntu-latest strategy: matrix: python-version: ['3.7', '3.11'] fail-fast: false steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} cache: 'pip' cache-dependency-path: 'pyproject.toml' - name: Install dependencies run: | pip install -q tox - name: Run typecheck run: | tox -m typecheck docs: name: Docs Checks runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: cache: 'pip' cache-dependency-path: 'pyproject.toml' - name: Install dependencies run: | pip install -q tox - name: Check links run: | tox -m linkcheck - name: Build docs run: | tox -m doc