name: Python package

on: [pull_request]

jobs:
  build:

    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ["3.8", "3.9", "3.10", "3.11"]
        django-version: ["32","4"]
    steps:
    - uses: actions/checkout@v3

    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v4
      with:
        python-version: ${{ matrix.python-version }}

    - uses: actions/cache@v2
      with:
        path: ~/.cache/pip
        key: ${{ hashFiles('requirements.txt') }}-${{ hashFiles('requirements-testing.txt')}}-${{ hashFiles('tox.ini') }}-${{ matrix.python-version }}-${{ matrix.django-version }}

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt -r requirements-testing.txt -c constraints-Django${{ matrix.django-version }}.txt

    - name: Lint with ruff
      run: |
        pip install ruff
        ruff helpdesk

    - name: Test with pytest
      run: |
        pip install pytest
        cd ${GITHUB_WORKSPACE} && python quicktest.py
      env:
        DJANGO_SETTINGS_MODULE: helpdesk.settings

