-
Notifications
You must be signed in to change notification settings - Fork 137
144 lines (124 loc) · 5.08 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
140
141
142
143
144
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.6, 3.7, 3.8, 3.9, '3.10', 3.11]
framework:
- NONE
- FLASK_VERSION=1.1.4
- FLASK_VERSION=2.3.3
- FLASK_VERSION=3.0.3
- DJANGO_VERSION=3.2.25
- DJANGO_VERSION=4.2.15
- DJANGO_VERSION=5.0.8
- TWISTED_VERSION=20.3.0
- TWISTED_VERSION=21.7.0
- TWISTED_VERSION=22.10.0
- PYRAMID_VERSION=1.10.8
- PYRAMID_VERSION=2.0.2
- STARLETTE_VERSION=0.30.0 httpx==0.24.1 python-multipart==0.0.9
- STARLETTE_VERSION=0.38.2 httpx==0.27.0 python-multipart==0.0.9
- FASTAPI_VERSION=0.101.1 httpx==0.24.1 python-multipart==0.0.9
- FASTAPI_VERSION=0.112.1 httpx==0.27.0 python-multipart==0.0.9
exclude:
# Test frameworks on the python versions they support, according to pypi registry
# Flask
- framework: FLASK_VERSION=2.3.3
python-version: 3.6
- framework: FLASK_VERSION=2.3.3
python-version: 3.7
- framework: FLASK_VERSION=3.0.3
python-version: 3.6
- framework: FLASK_VERSION=3.0.3
python-version: 3.7
# Django
- framework: DJANGO_VERSION=3.2.25
python-version: 3.11
- framework: DJANGO_VERSION=4.2.15
python-version: 3.6
- framework: DJANGO_VERSION=4.2.15
python-version: 3.7
- framework: DJANGO_VERSION=5.0.8
python-version: 3.6
- framework: DJANGO_VERSION=5.0.8
python-version: 3.7
- framework: DJANGO_VERSION=5.0.8
python-version: 3.8
- framework: DJANGO_VERSION=5.0.8
python-version: 3.9
# Twisted
- framework: TWISTED_VERSION=20.3.0
python-version: 3.11
- framework: TWISTED_VERSION=22.10.0
python-version: 3.6
# Starlette
- framework: STARLETTE_VERSION=0.30.0 httpx==0.24.1 python-multipart==0.0.9
python-version: 3.6
- framework: STARLETTE_VERSION=0.30.0 httpx==0.24.1 python-multipart==0.0.9
python-version: 3.7
- framework: STARLETTE_VERSION=0.38.2 httpx==0.27.0 python-multipart==0.0.9
python-version: 3.6
- framework: STARLETTE_VERSION=0.38.2 httpx==0.27.0 python-multipart==0.0.9
python-version: 3.7
# FastAPI
- framework: FASTAPI_VERSION=0.101.1 httpx==0.24.1 python-multipart==0.0.9
python-version: 3.6
- framework: FASTAPI_VERSION=0.101.1 httpx==0.24.1 python-multipart==0.0.9
python-version: 3.7
- framework: FASTAPI_VERSION=0.112.1 httpx==0.27.0 python-multipart==0.0.9
python-version: 3.6
- framework: FASTAPI_VERSION=0.112.1 httpx==0.27.0 python-multipart==0.0.9
python-version: 3.7
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.6 dependencies
if: ${{ contains(matrix.python-version, '3.6') }}
# typing-extensions dropped support for Python 3.6 in version 4.2
run: pip install "typing-extensions<4.2" requests==2.27.0 blinker==1.5 immutables==0.19 webob blinker httpx aiocontextvars
- name: Install Python 3.7 dependencies
if: ${{ contains(matrix.python-version, '3.7') }}
# immutables dropped support for Python<3.8 in version 0.20
run: pip install immutables==0.19
- name: Set the framework
if: ${{ matrix.framework != 'NONE' }}
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: Install Tox
run: pip install tox
- name: Run tests (skip on Python 3.6)
if: ${{ !contains(matrix.python-version, '3.6') }}
run: tox
- name: Run tests (Python 3.6)
if: ${{ contains(matrix.python-version, '3.6') }}
run: python -m unittest rollbar.test.discover