name: CI on: push: branches: - master pull_request: branches: - master jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', 'pypy-3.7', 'pypy-3.9'] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - uses: actions/cache@v3 with: path: ~/.cache/pip key: ${{ runner.os }}-python-${{ matrix.python-version }}-pip-${{ hashFiles('.github/workflows/ci.yml') }} restore-keys: ${{ runner.os }}-python-${{ matrix.python-version }}-pip - name: Install dependencies run: | python -m pip install --upgrade pip python -m pip install tox tox-gh-actions sudo apt-get install libmemcached-dev - name: Lint if: matrix.python-version == '3.10' run: | tox -e lint,mypy - name: Docs if: matrix.python-version == '3.10' run: | tox -e docs - name: Disable IPv6 localhost run: | sudo sed -i '/::1/d' /etc/hosts - name: Tests run: | tox -- pymemcache/test/ \ -m 'unit or integration' \ --port ${{ job.services.memcached.ports[11211] }} \ --tls-port ${{ job.services.tls_memcached.ports[11211] }} services: memcached: image: memcached:latest ports: - 11211/tcp tls_memcached: image: scoriacorp/tls_memcached:latest ports: - 11211/tcp