summaryrefslogtreecommitdiffstats
path: root/.github/workflows/test.yml
blob: e1c5de2eca3f978140b309f4cc24f6125162d39e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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"
          - "sqlite:///takahe.db"
        include:
          - db: "postgres://postgres:postgres@localhost/postgres"
            db_name: postgres
            search: true
          - db: "sqlite:///takahe.db"
            db_name: sqlite
            search: false
    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