name: tests on: push: branches: - master pull_request: branches: - master jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Lint with ruff run: | pipx install ruff==0.4.10 ruff format . --check && ruff check . test: runs-on: ubuntu-latest strategy: matrix: python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12" ] django: [ "4.2", "5.0", "5.1"] exclude: # django 5.1 does not support 3.8 and 3.9 - python-version: "3.8" django: "5.1" - python-version: "3.9" django: "5.1" # django 5.0 does not support 3.8 and 3.9 - python-version: "3.8" django: "5.0" - python-version: "3.9" django: "5.0" 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@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies with Django ${{ matrix.django }} run: | python -m pip install --upgrade pip pip install poetry poetry add "django==${{ matrix.django }}" --python=${{ matrix.python-version }} poetry install -E testing - name: Run Tests run: | poetry run pytest --cov=./django_q --cov-report=xml env: MONGO_HOST: "127.0.0.1" REDIS_HOST: "127.0.0.1" - name: Upload to coveralls run: | python -m pip install coveralls coveralls --service=github env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} COVERALLS_FLAG_NAME: python-${{ matrix.python-version }}-django-${{ matrix.django }} COVERALLS_PARALLEL: true finish: needs: test runs-on: ubuntu-latest container: python:3.11-bookworm steps: - name: Upload to coveralls run: | python -m pip install --upgrade pip python -m pip install coveralls flake8 black coveralls --service=github --finish env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Check flake8/black run: | flake8 . black --check .