Skip to content

fix:add type hints #881

fix:add type hints

fix:add type hints #881

Workflow file for this run

---
name: Unit tests
on:
push:
branches:
- master
pull_request_target:
branches:
- master
concurrency:
group: test-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
name: "flake8 on code"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
cache-dependency-path: poetry.lock
python-version: "3.11"
- name: Install dependencies
env:
PYTHON_KEYRING_BACKEND: keyring.backends.null.Keyring
run: |
python -m pip --quiet install poetry
echo "$HOME/.poetry/bin" >> $GITHUB_PATH
poetry install
- name: Run flake8
shell: bash
run: |
poetry run flake8 fakeredis/
- name: Test import
run: |
poetry build
pip install dist/fakeredis-*.tar.gz
python -c "import fakeredis"
test:
name: >
py:${{ matrix.python-version }},${{ matrix.redis-image }},
redis-py:${{ matrix.redis-py }},cov:${{ matrix.coverage }},
lupa:${{ matrix.lupa }}, json:${{matrix.json}}
needs:
- "lint"
runs-on: ubuntu-latest
strategy:
max-parallel: 8
fail-fast: false
matrix:
redis-image: [ "redis:6.2.13", "redis:7.0.12", "redis:7.2.0" ]
python-version: [ "3.8", "3.9", "3.10", "3.11" ]
redis-py: [ "4.3.6", "4.5.5", "4.6.0", "5.0.0" ]
include:
- python-version: "3.11"
redis-image: "redis:6.2.12"
redis-py: "5.0.0"
lupa: true
hypothesis: true
- python-version: "3.11"
redis-image: "redis/redis-stack-server:7.2.0-v0"
redis-py: "5.0.0"
lupa: true
json: true
coverage: true
hypothesis: true
permissions:
pull-requests: write
services:
redis:
image: ${{ matrix.redis-image }}
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
outputs:
version: ${{ steps.getVersion.outputs.VERSION }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
cache-dependency-path: poetry.lock
python-version: ${{ matrix.python-version }}
- name: Install dependencies
env:
PYTHON_KEYRING_BACKEND: keyring.backends.null.Keyring
run: |
python -m pip --quiet install poetry
echo "$HOME/.poetry/bin" >> $GITHUB_PATH
poetry install
poetry run pip install redis==${{ matrix.redis-py }}
- name: Install lupa
if: ${{ matrix.lupa }}
run: |
poetry run pip install fakeredis[lua]
- name: Install json
if: ${{ matrix.json }}
run: |
poetry run pip install fakeredis[json]
- name: Get version
id: getVersion
shell: bash
run: |
VERSION=$(poetry version -s --no-ansi -n)
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
- name: Test without coverage
if: ${{ !matrix.coverage }}
run: |
poetry run pytest -v -m "not slow"
- name: Test with coverage
if: ${{ matrix.coverage }}
uses: ./.github/actions/test-coverage
with:
github-secret: ${{ secrets.GITHUB_TOKEN }}
gist-secret: ${{ secrets.GIST_SECRET }}
# Prepare a draft release for GitHub Releases page for the manual verification
# If accepted and published, release workflow would be triggered
update_release_draft:
name: "Create or Update release draft"
permissions:
# write permission is required to create a GitHub release
contents: write
# write permission is required for auto-labeler
# otherwise, read permission is required at least
pull-requests: write
needs:
- "test"
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}