--- 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.12' - '3.11' - '3.10' - '3.9' steps: - uses: actions/checkout@v4 - name: Install Poetry uses: snok/install-poetry@v1 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} cache: 'poetry' - name: Install apt dependencies run: | sudo apt update sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install apparmor-utils libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils - name: App armor configuration for slapd if: ${{ !env.ACT }} run: sudo aa-complain /usr/sbin/slapd - name: Install dependencies and run tests run: | # python tzinfo fails on 'act' without this ulimit -n 1024 export TZ=UTC poetry --version poetry install --extras all poetry run pytest --showlocals minversions: name: minimum dependency versions runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Poetry uses: snok/install-poetry@v1 - uses: actions/setup-python@v5 with: python-version: '3.9' cache: 'poetry' - name: Install apt dependencies run: | sudo apt update sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install apparmor-utils libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils - name: App armor configuration for slapd if: ${{ !env.ACT }} run: sudo aa-complain /usr/sbin/slapd - run: sed -i -E 's/"(\^|>=)([0-9\.]+)([^,]*)"/"==\2"/' pyproject.toml - run: sed -i -E 's/python = "==/python = "^/' pyproject.toml - name: Install dependencies and run tests run: | # python tzinfo fails on 'act' without this ulimit -n 1024 export TZ=UTC poetry --version poetry lock poetry install --extras all poetry run pytest --showlocals style: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: pre-commit/action@v3.0.1 doc: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Poetry uses: snok/install-poetry@v1 - uses: actions/setup-python@v5 with: python-version: '3.12' cache: 'poetry' - name: Install apt dependencies run: | sudo apt update sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils - run: | export TZ=UTC poetry install --with doc poetry run sphinx-build doc build/sphinx/html