name: Test on: pull_request: push: branches: - master jobs: test: name: Pytest strategy: fail-fast: false matrix: os: ["ubuntu-20.04"] python: ["3.8", "3.9", "3.10", "3.11.1", "3.12"] redis: [5, 6, 7, 7.2] runs-on: ${{ matrix.os }} services: redis: image: redis:${{ matrix.redis }} ports: - 6379:6379 options: --entrypoint redis-server steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python }} architecture: "x64" - name: Cache venv uses: actions/cache@v2 with: path: venv # Look to see if there is a cache hit for the corresponding requirements file key: poetryenv-${{ matrix.os }}-${{ matrix.python }}-${{ hashFiles('poetry.lock') }} - name: Install Dependencies run: | python3 -m venv venv . venv/bin/activate pip install -U pip setuptools pip install poetry poetry install python -c "import sys; print(sys.version)" pip list - name: Pytest env: REDIS_VERSION: ${{ matrix.redis }} run: | . venv/bin/activate pytest lint: name: flake8 & black runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: codespell-project/actions-codespell@master with: ignore_words_list: fo,ists,oll,optin,ot,smove,tre,whe,EXAT,exat skip: ./docs/assets/demo.svg,./iredis/data/commands.json,./iredis/data/commands/*,./tests/unittests/* - uses: actions/setup-python@v4 with: python-version: 3.8 architecture: "x64" - name: Cache venv uses: actions/cache@v2 with: path: venv # Look to see if there is a cache hit for the corresponding requirements file key: lintenv-v2 - name: Install Dependencies run: | python3 -m venv venv . venv/bin/activate pip install -U pip flake8 black - name: Flake8 test run: | . venv/bin/activate flake8 . - name: Black test run: | . venv/bin/activate black --check .