--- name: tests on: push: branches: - main - '*.*.*' pull_request: branches: - main - '*.*.*' jobs: tests: name: py${{ matrix.python }} unit tests runs-on: ubuntu-latest strategy: fail-fast: false matrix: python: - '3.13' - '3.12' - '3.11' - '3.10' steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v3 with: enable-cache: true - name: Install Python ${{ matrix.python }} run: uv python install ${{ matrix.python }} - 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: Run tests run: | # python tzinfo fails on 'act' without this ulimit -n 1024 export TZ=UTC uv sync --all-extras uv run pytest --numprocesses auto minversions: name: minimum dependency versions runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v3 with: enable-cache: true - name: Install Python 3.10 run: uv python install 3.10 - 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: Run tests run: | # python tzinfo fails on 'act' without this ulimit -n 1024 export TZ=UTC uv sync --all-extras --resolution=lowest-direct uv run pytest --numprocesses auto style: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v3 with: enable-cache: true - name: Run linters 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: Run tests run: | # python tzinfo fails on 'act' without this ulimit -n 1024 export TZ=UTC uv sync --all-extras uv run pre-commit run --all-files doc: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv uses: astral-sh/setup-uv@v3 with: enable-cache: true - 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 uv sync --group doc --all-extras uv run sphinx-build doc build/sphinx/html --fail-on-warning