-
Notifications
You must be signed in to change notification settings - Fork 134
139 lines (120 loc) · 4.88 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: Pyrollbar CI
on:
push:
branches: [ master ]
tags: [ v* ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [3.5, 3.6, 3.7, 3.8, 3.9, '3.10', 3.11]
framework:
- FLASK_VERSION=0.12.5 Werkzeug\>=0.7,\<1.0
- FLASK_VERSION=1.1.4
- FLASK_VERSION=2.2.3
- DJANGO_VERSION=1.11.29
- DJANGO_VERSION=2.2.28
- DJANGO_VERSION=3.2.18
- DJANGO_VERSION=4.0.10
- DJANGO_VERSION=4.1.7
- TWISTED_VERSION=20.3.0
- TWISTED_VERSION=21.7.0
- TWISTED_VERSION=22.10.0
- PYRAMID_VERSION=1.10.8
- STARLETTE_VERSION=0.12.13 httpx==0.18.1 python-multipart==0.0.5
- STARLETTE_VERSION=0.14.2 httpx==0.18.1 python-multipart==0.0.5
- FASTAPI_VERSION=0.40.0 httpx==0.18.1 python-multipart==0.0.5
- FASTAPI_VERSION=0.50.0 httpx==0.18.1 python-multipart==0.0.5
- FASTAPI_VERSION=0.63.0 httpx==0.18.1 python-multipart==0.0.5
exclude:
# Test frameworks on the python versions they support, according to pypi registry
# Flask
- framework: FLASK_VERSION=2.2.3
python-version: 3.5
- framework: FLASK_VERSION=2.2.3
python-version: 3.6
# Django
- framework: DJANGO_VERSION=1.11.29
python-version: 3.8
- framework: DJANGO_VERSION=1.11.29
python-version: 3.9
- framework: DJANGO_VERSION=1.11.29
python-version: '3.10'
- framework: DJANGO_VERSION=1.11.29
python-version: 3.11
- framework: DJANGO_VERSION=3.2.18
python-version: 3.5
- framework: DJANGO_VERSION=4.0.10
python-version: 3.5
- framework: DJANGO_VERSION=4.0.10
python-version: 3.6
- framework: DJANGO_VERSION=4.0.10
python-version: 3.7
- framework: DJANGO_VERSION=4.1.7
python-version: 3.5
- framework: DJANGO_VERSION=4.1.7
python-version: 3.6
- framework: DJANGO_VERSION=4.1.7
python-version: 3.7
# Twisted
- framework: TWISTED_VERSION=20.3.0
python-version: 3.11
- framework: TWISTED_VERSION=21.7.0
python-version: 3.5
- framework: TWISTED_VERSION=22.10.0
python-version: 3.5
- framework: TWISTED_VERSION=22.10.0
python-version: 3.6
# Starlette
- framework: STARLETTE_VERSION=0.12.13 httpx==0.18.1 python-multipart==0.0.5
python-version: 3.5
- framework: STARLETTE_VERSION=0.14.2 httpx==0.18.1 python-multipart==0.0.5
python-version: 3.5
# Fastapi
- framework: FASTAPI_VERSION=0.40.0 httpx==0.18.1 python-multipart==0.0.5
python-version: 3.5
- framework: FASTAPI_VERSION=0.50.0 httpx==0.18.1 python-multipart==0.0.5
python-version: 3.5
- framework: FASTAPI_VERSION=0.63.0 httpx==0.18.1 python-multipart==0.0.5
python-version: 3.5
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Python 3.5 dependencies
if: ${{ contains(matrix.python-version, '3.5') }}
# typing-extensions dropped support for Python 3.5 in version 4
run: pip install six==1.16.0 "typing-extensions<4" requests==2.24.0 blinker==1.5 WebOb==1.8.7
- name: Install Python 3.6 dependencies
if: ${{ contains(matrix.python-version, '3.6') }}
# typing-extensions dropped support for Python 3.6 in version 4.2
run: pip install six==1.16.0 "typing-extensions<4.2" requests==2.27.0 blinker==1.5
- name: Set the framework
run: echo ${{ matrix.framework }} >> $GITHUB_ENV
- name: Install Flask
if: ${{ contains(matrix.framework, 'FLASK_VERSION') }}
run: pip install Flask==$FLASK_VERSION
- name: Install Twisted
if: ${{ contains(matrix.framework, 'TWISTED_VERSION') }}
run: pip install Twisted==$TWISTED_VERSION idna==2.10
- name: Install Django
if: ${{ contains(matrix.framework, 'DJANGO_VERSION') }}
run: pip install Django==$DJANGO_VERSION
- name: Install Pyramid
if: ${{ contains(matrix.framework, 'PYRAMID_VERSION') }}
run: pip install pyramid==$PYRAMID_VERSION
- name: Install Starlette
if: ${{ contains(matrix.framework, 'STARLETTE_VERSION') }}
run: pip install starlette==$STARLETTE_VERSION
- name: Install FastAPI
if: ${{ contains(matrix.framework, 'FASTAPI_VERSION') }}
run: pip install fastapi==$FASTAPI_VERSION
- name: Run tests
run: python setup.py test