name: Test

on:
  push:
    paths-ignore:
      - 'docs/**'
  pull_request:
    paths-ignore:
      - 'docs/**'

jobs:
  test:
    name: test py${{ matrix.python-version }} with ${{ matrix.db_name }}
    runs-on: ubuntu-latest
    timeout-minutes: 8
    strategy:
      matrix:
        python-version: ["3.10", "3.11"]
        db:
          - "postgres://postgres:postgres@localhost/postgres"
        include:
          - db: "postgres://postgres:postgres@localhost/postgres"
            db_name: postgres
            search: true
    services:
      postgres:
        image: postgres:15
        env:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: postgres
        ports: ["5432:5432"]
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5
    steps:
      - uses: actions/checkout@v3
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v4
        with:
          python-version: ${{ matrix.python-version }}
          cache: pip
      - name: Install dependencies
        run: |
          python -m pip install -r requirements-dev.txt
      - name: Run pytest
        env:
          TAKAHE_DATABASE_SERVER: ${{ matrix.db }}
          TAKAHE_SEARCH: ${{ matrix.search }}
          TAKAHE_ENVIRONMENT: "test"
          TAKAHE_SECRET_KEY: "testing_secret"
          TAKAHE_MAIN_DOMAIN: "example.com"
        run: |
          python -m pytest
      - name: Run pre-commit
        run: |
          pre-commit run -a --show-diff-on-failure
