20
20
name : ${{ matrix.task.name }} - ${{ matrix.os.name }} ${{ matrix.python.name }} ${{ matrix.arch.name }}
21
21
runs-on : ${{ matrix.os.runs-on }}
22
22
container : ${{ matrix.os.container[matrix.python.docker] }}
23
+ # present runtime seems to be about 1 minute 30 seconds
24
+ timeout-minutes : 10
23
25
strategy :
24
26
fail-fast : false
25
27
matrix :
30
32
os :
31
33
- name : Linux
32
34
runs-on : ubuntu-latest
33
- python_platform : linux
34
35
matrix : linux
35
36
container :
36
37
2.7 : docker://python:2.7-buster
@@ -40,55 +41,67 @@ jobs:
40
41
3.9 : docker://python:3.9-buster
41
42
pypy2 : docker://pypy:2-jessie
42
43
pypy3 : docker://pypy:3-stretch
43
- # - name: Windows
44
- # runs-on: windows-latest
45
- # python_platform: win32
46
- # matrix: windows
47
- # - name: macOS
48
- # runs-on: macos-latest
49
- # python_platform: darwin
50
- # matrix: macos
44
+ - name : macOS
45
+ runs-on : macos-latest
46
+ matrix : macos
47
+ - name : Windows
48
+ runs-on : windows-latest
49
+ matrix : windows
50
+ openssl :
51
+ x86 : win32
52
+ x64 : win64
51
53
python :
52
54
- name : CPython 2.7
53
55
tox : py27
54
56
action : 2.7
55
57
docker : 2.7
58
+ matrix : 2.7
56
59
implementation : cpython
57
60
- name : PyPy 2.7
58
61
tox : pypy27
59
62
action : pypy-2.7
60
63
docker : pypy2.7
64
+ matrix : 2.7
61
65
implementation : pypy
66
+ openssl_msvc_version : 2019
62
67
- name : CPython 3.6
63
68
tox : py36
64
69
action : 3.6
65
70
docker : 3.6
71
+ matrix : 3.6
66
72
implementation : cpython
67
73
- name : CPython 3.7
68
74
tox : py37
69
75
action : 3.7
70
76
docker : 3.7
77
+ matrix : 3.7
71
78
implementation : cpython
72
79
- name : CPython 3.8
73
80
tox : py38
74
81
action : 3.8
75
82
docker : 3.8
83
+ matrix : 3.8
76
84
implementation : cpython
77
85
- name : CPython 3.9
78
86
tox : py39
79
87
action : 3.9
80
88
docker : 3.9
89
+ matrix : 3.9
81
90
implementation : cpython
82
91
- name : PyPy 3.6
83
92
tox : pypy36
84
93
action : pypy-3.6
85
94
docker : pypy3.6
95
+ matrix : 3.6
86
96
implementation : pypy
97
+ openssl_msvc_version : 2019
87
98
- name : PyPy 3.7
88
99
tox : pypy37
89
100
action : pypy-3.7
90
101
docker : pypy3.7
102
+ matrix : 3.7
91
103
implementation : pypy
104
+ openssl_msvc_version : 2019
92
105
arch :
93
106
- name : x86
94
107
action : x86
@@ -105,6 +118,12 @@ jobs:
105
118
matrix : macos
106
119
arch :
107
120
matrix : x86
121
+ - os :
122
+ matrix : windows
123
+ python :
124
+ implementation : pypy
125
+ arch :
126
+ matrix : x64
108
127
env :
109
128
# Should match name above
110
129
JOB_NAME : ${{ matrix.task.name }} - ${{ matrix.os.name }} ${{ matrix.python.name }} ${{ matrix.arch.name }}
@@ -129,7 +148,37 @@ jobs:
129
148
pip install --upgrade pip setuptools wheel
130
149
pip install --upgrade tox
131
150
151
+ - name : Add PyPy Externals
152
+ if : ${{ matrix.os.matrix == 'windows' && matrix.python.implementation == 'pypy'}}
153
+ env :
154
+ PYPY_EXTERNALS_PATH : ${{ github.workspace }}/pypy_externals
155
+ shell : bash
156
+ run : |
157
+ echo $PYPY_EXTERNALS_PATH
158
+ mkdir --parents $(dirname $PYPY_EXTERNALS_PATH)
159
+ hg clone https://foss.heptapod.net/pypy/externals/ $PYPY_EXTERNALS_PATH
160
+ dir $PYPY_EXTERNALS_PATH
161
+ cd $PYPY_EXTERNALS_PATH && hg update win32_14x
162
+ echo "INCLUDE=$PYPY_EXTERNALS_PATH/include;$INCLUDE" >> $GITHUB_ENV
163
+ echo "LIB=$PYPY_EXTERNALS_PATH/lib;$LIB" >> $GITHUB_ENV
164
+ # echo "CL=${{ matrix.PYTHON.CL_FLAGS }}" >> $GITHUB_ENV
165
+ - name : Add Brew
166
+ if : ${{ matrix.os.matrix == 'macos' && matrix.python.implementation == 'pypy'}}
167
+ shell : bash
168
+ run : |
169
+ brew install [email protected] rust
170
+ echo "LDFLAGS=-L$(brew --prefix [email protected] )/lib" >> $GITHUB_ENV
171
+ echo "CFLAGS=-I$(brew --prefix [email protected] )/include" >> $GITHUB_ENV
172
+ - name : rustup
173
+ if : ${{ matrix.os.matrix == 'windows' && matrix.python.implementation == 'pypy'}}
174
+ shell : bash
175
+ run : |
176
+ rustup target add i686-pc-windows-msvc
132
177
- name : Test
178
+ env :
179
+ # When compiling Cryptography for PyPy on Windows there is a cleanup
180
+ # failure. This is CI, it doesn't matter.
181
+ PIP_NO_CLEAN : 1
133
182
run : |
134
183
tox -vv -e ${{ matrix.python.tox }}
135
184
- name : Coverage Processing
@@ -161,7 +210,6 @@ jobs:
161
210
os :
162
211
- name : Linux
163
212
runs-on : ubuntu-latest
164
- python_platform : linux
165
213
matrix : linux
166
214
container :
167
215
3.8 : docker://python:3.8-buster
@@ -195,6 +243,7 @@ jobs:
195
243
# Should match JOB_NAME below
196
244
name : ${{ matrix.task.name }} - ${{ matrix.os.name }} ${{ matrix.python.name }} ${{ matrix.arch.name }}
197
245
runs-on : ${{ matrix.os.runs-on }}
246
+ if : always()
198
247
needs :
199
248
- test
200
249
container : ${{ matrix.os.container[matrix.python.docker] }}
@@ -208,7 +257,6 @@ jobs:
208
257
os :
209
258
- name : Linux
210
259
runs-on : ubuntu-latest
211
- python_platform : linux
212
260
matrix : linux
213
261
container :
214
262
3.8 : docker://python:3.8-buster
0 commit comments