name: tests on: [ push, pull_request ] jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: [ 3.7, 3.8, 3.9 ] django: [ "2.2", "3.2" ] services: disque: image: efrecon/disque:1.0-rc1 ports: - '7711:7711/tcp' mongodb: image: mongo ports: - 27017:27017 postgres: image: postgres env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres ports: - 5432:5432 # needed because the postgres container does not provide a health check options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 redis: image: redis ports: - 6379:6379 options: --entrypoint redis-server steps: - uses: actions/checkout@v2 - uses: codecov/codecov-action@v1 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install dependencies with Django ${{ matrix.django }} run: | python -m pip install --upgrade pip pip install -q django==${{ matrix.django }} pip install -r requirements.txt pip install pytest --upgrade pip install pytest-django codecov sphinx poetry poetry install - name: Run Tests run: | coverage run --source=django_q -m py.test - name: Build docs run: | sphinx-build -b html -d docs/_build/doctrees -nW docs docs/_build/html