name: Test on: push: branches: - master - '**' pull_request: branches: [ master ] permissions: contents: read # to fetch code (actions/checkout) jobs: ssl-test: name: Run SSL tests runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - name: Build the Docker test image for tox uses: docker/build-push-action@v6 with: file: tests/Dockerfile tags: rqtest-image:latest push: false - name: Launch tox SSL env only (will only run SSL specific tests) uses: addnab/docker-run-action@v3 with: image: rqtest-image:latest run: stunnel & redis-server & RUN_SSL_TESTS=1 hatch run tox run -e ssl test: name: Python${{ matrix.python-version }}/Redis${{ matrix.redis-version }}/redis-py${{ matrix.redis-py-version }} runs-on: ubuntu-20.04 timeout-minutes: 10 strategy: matrix: python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] redis-version: [4, 5, 6, 7] redis-py-version: [3.5.0] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5.3.0 with: python-version: ${{ matrix.python-version }} - name: Start Redis uses: supercharge/redis-github-action@1.8.0 with: redis-version: ${{ matrix.redis-version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install hatch pip install redis==${{ matrix.redis-py-version }} - name: Test with pytest run: | RUN_SLOW_TESTS_TOO=1 hatch run test:cov --durations=5 - name: Upload coverage to Codecov uses: codecov/codecov-action@v5 with: file: ./coverage.xml fail_ci_if_error: false mypy: runs-on: ubuntu-latest name: Type check steps: - uses: actions/checkout@v3 - name: Set up Python 3.8 uses: actions/setup-python@v5.3.0 with: python-version: "3.8" - name: Install dependencies run: | python -m pip install --upgrade pip pip install hatch - name: Run Test run: | hatch run test:typing