-
Notifications
You must be signed in to change notification settings - Fork 3
131 lines (110 loc) · 3.25 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
name: CI
on:
pull_request:
push:
branches:
- "master"
tags:
- "*"
jobs:
build:
# When testing new Python or Django versions, one should use the
# filterwarnings definition of setup.cfg to turn deprecation warnings
# into errors.
strategy:
matrix:
include:
- name: Python 3.7 / Django 2.2
python_version: "3.7"
tox_env: py37-django22
- name: Python 3.8 / Django 3.0
python_version: "3.8"
tox_env: py38-django30
- name: Python 3.9 / Django 3.1
python_version: "3.9"
tox_env: py39-django31
- name: Python 3.10 / Django 3.2
python_version: "3.10"
tox_env: py310-django32
- name: Python 3.10 / Django 4.0
python_version: "3.10"
tox_env: py310-django40
- name: Python 3.11 / Django 4.1
python_version: "3.11"
tox_env: py311-django41
- name: Python 3.11 / Django 4.2
python_version: "3.11"
tox_env: py311-django42
name: "${{ matrix.name }}"
runs-on: ubuntu-latest
services:
postgres:
image: postgres
# Set health checks to wait until postgres has started
env:
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
ports:
- 5432:5432
steps:
- uses: actions/checkout@v4
- name: Install poetry
run: |
if [ "${{ matrix.python_version }}" = "3.7" ]; then
pipx install poetry==1.5.1
else
pipx install poetry
fi
- name: Set up Python
id: setup-python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python_version }}
cache: poetry
- name: Install tox
run: pipx install tox
- name: Run ${{ matrix.name }}
run: tox -e ${{ matrix.tox_env }}
env:
DATABASE_URL: postgres://postgres:postgres@localhost:5432/test
COVERAGE_FILE: ".coverage.${{ matrix.tox_env }}"
- name: Store coverage file
uses: actions/upload-artifact@v3
with:
name: coverage
path: .coverage.${{ matrix.tox_env }}
coverage:
name: Coverage
runs-on: ubuntu-latest
needs: build
permissions:
pull-requests: write
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
id: download
with:
name: "coverage"
- name: Coverage comment
id: coverage_comment
uses: py-cov-action/python-coverage-comment-action@v3
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MERGE_COVERAGE_FILES: true
- name: Store Pull Request comment to be posted
uses: actions/upload-artifact@v3
if: steps.coverage_comment.outputs.COMMENT_FILE_WRITTEN == 'true'
with:
name: python-coverage-comment-action
path: python-coverage-comment-action.txt
report-status:
name: success
runs-on: ubuntu-latest
needs: build
steps:
- name: Report success
run: echo 'Success !'