name: CI

on:
  push:
    branches: [master]
  pull_request: {}
  
permissions:
  contents: read

jobs:
  mypy:
    runs-on: ubuntu-22.04

    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - name: Set up Python
        uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
      - name: Install dependencies
        run: pip install mypy
      - name: Run mypy
        run: mypy --strict certifi

  test:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        python-version:
        - "3.7"
        - "3.8"
        - "3.9"
        - "3.10"
        - "3.11"
        - "3.12"
        - "3.13"
        - "3.14-dev"
    steps:
    - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install test dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install pytest
    - name: Test with pytest
      run: |
        python -W error -W 'ignore:Running attrs on Python 3.6' -m pytest
