---
name: tests
on:
  push:
    branches:
      - main
      - '*.*.*'
  pull_request:
    branches:
      - main
      - '*.*.*'
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@v3
      - uses: actions/setup-python@v2
        with:
          python-version: ${{ matrix.python }}
      - name: Update apt repositories
        run: sudo apt update
      - name: Install apt dependencies
        run: sudo apt --yes install apparmor-utils libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils
      - name: App armor configuration for slapd
        run: sudo aa-complain /usr/sbin/slapd
      - uses: actions/cache@v1
        with:
          path: ~/.cache/pip
          key: pip|${{ hashFiles('setup.py') }}|${{ hashFiles('tox.ini') }}
      - run: pip install --upgrade tox "poetry>1.3.0" coveralls pyyaml tomli
      - run: tox -e py
  style:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v2
        with:
          python-version: '3.11'
      - name: Update apt repositories
        run: sudo apt update
      - name: Install apt dependencies
        run: sudo apt --yes install apparmor-utils libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils
      - name: App armor configuration for slapd
        run: sudo aa-complain /usr/sbin/slapd
      - 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 --upgrade tox "poetry>1.3.0" coveralls pyyaml tomli
      - run: tox -e style
  doc:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v2
        with:
          python-version: '3.11'
      - name: Update apt repositories
        run: sudo apt update
      - name: Install apt dependencies
        run: sudo apt --yes install apparmor-utils libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils
      - name: App armor configuration for slapd
        run: sudo aa-complain /usr/sbin/slapd
      - uses: actions/cache@v1
        with:
          path: ~/.cache/pip
          key: pip|${{ hashFiles('setup.py') }}|${{ hashFiles('tox.ini') }}
      - run: pip install --upgrade tox "poetry>1.3.0" coveralls pyyaml tomli
      - run: tox -e doc
