name: Test on: pull_request: push: branches: - master jobs: test: name: Pytest strategy: matrix: os: [ubuntu-latest] python: ['3.6', '3.7', '3.8', '3.9', '3.10'] redis: [5, 6, 7] 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@v2 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==21.1 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 exclude_file: docs/assets/demo.svg - uses: actions/setup-python@v1 with: python-version: 3.7 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 .