-
Notifications
You must be signed in to change notification settings - Fork 66
139 lines (129 loc) · 3.83 KB
/
ci.yml
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
name: Tests
# Test Tagulous on:
# all supported Django and Python versions
# against sqlite, postgresql and mysql
on:
push:
pull_request:
jobs:
test-sqlite:
name: py-${{ matrix.python }} dj-${{ matrix.django }}
runs-on: ubuntu-latest
strategy:
matrix:
include:
# Django LTS on latest supported Python
- python: "3.10"
django: "3.2"
- python: "3.12"
django: "4.2"
# Django supported latest on supported Python
- python: "3.12"
django: "5.0"
- python: "3.12"
django: "5.1"
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r tests/requirements/django-${{ matrix.django }}.txt
- name: Test
run: |
pytest
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
name: ${{ matrix.python }}-${{ matrix.django }}
test-postgres:
name: py-${{ matrix.python }} dj-${{ matrix.django }} PostgreSQL
runs-on: ubuntu-latest
strategy:
matrix:
include:
# Latest Django LTS and release on latest supported Python
- python: "3.12"
django: "4.2"
- python: "3.12"
django: "5.1"
services:
postgres:
image: postgres:latest
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r tests/requirements/django-${{ matrix.django }}.txt
pip install psycopg2-binary
- name: Test
run: |
pytest
env:
DATABASE_ENGINE: postgresql
DATABASE_HOST: localhost
DATABASE_USER: postgres
DATABASE_PASSWORD: postgres
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
name: ${{ matrix.python }}-${{ matrix.django }}-postgres
test-mysql:
name: py-${{ matrix.python }} dj-${{ matrix.django }} MySQL
runs-on: ubuntu-latest
strategy:
matrix:
include:
# Latest Django LTS and release on latest supported Python
- python: "3.12"
django: "4.2"
- python: "3.12"
django: "5.1"
services:
mysql:
image: mysql:latest
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r tests/requirements/django-${{ matrix.django }}.txt
pip install mysqlclient
- name: Test
run: |
pytest
env:
DATABASE_ENGINE: mysql
DATABASE_HOST: 127.0.0.1
DATABASE_PORT: 3306
DATABASE_USER: root
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
name: ${{ matrix.python }}-${{ matrix.django }}-mysql