2020 name : ${{ matrix.task.name }} - ${{ matrix.os.name }} ${{ matrix.python.name }} ${{ matrix.arch.name }}
2121 runs-on : ${{ matrix.os.runs-on }}
2222 container : ${{ matrix.os.container[matrix.python.docker] }}
23+ # present runtime seems to be about 1 minute 30 seconds
24+ timeout-minutes : 10
2325 strategy :
2426 fail-fast : false
2527 matrix :
3032 os :
3133 - name : Linux
3234 runs-on : ubuntu-latest
33- python_platform : linux
3435 matrix : linux
3536 container :
3637 2.7 : docker://python:2.7-buster
@@ -40,55 +41,67 @@ jobs:
4041 3.9 : docker://python:3.9-buster
4142 pypy2 : docker://pypy:2-jessie
4243 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
5153 python :
5254 - name : CPython 2.7
5355 tox : py27
5456 action : 2.7
5557 docker : 2.7
58+ matrix : 2.7
5659 implementation : cpython
5760 - name : PyPy 2.7
5861 tox : pypy27
5962 action : pypy-2.7
6063 docker : pypy2.7
64+ matrix : 2.7
6165 implementation : pypy
66+ openssl_msvc_version : 2019
6267 - name : CPython 3.6
6368 tox : py36
6469 action : 3.6
6570 docker : 3.6
71+ matrix : 3.6
6672 implementation : cpython
6773 - name : CPython 3.7
6874 tox : py37
6975 action : 3.7
7076 docker : 3.7
77+ matrix : 3.7
7178 implementation : cpython
7279 - name : CPython 3.8
7380 tox : py38
7481 action : 3.8
7582 docker : 3.8
83+ matrix : 3.8
7684 implementation : cpython
7785 - name : CPython 3.9
7886 tox : py39
7987 action : 3.9
8088 docker : 3.9
89+ matrix : 3.9
8190 implementation : cpython
8291 - name : PyPy 3.6
8392 tox : pypy36
8493 action : pypy-3.6
8594 docker : pypy3.6
95+ matrix : 3.6
8696 implementation : pypy
97+ openssl_msvc_version : 2019
8798 - name : PyPy 3.7
8899 tox : pypy37
89100 action : pypy-3.7
90101 docker : pypy3.7
102+ matrix : 3.7
91103 implementation : pypy
104+ openssl_msvc_version : 2019
92105 arch :
93106 - name : x86
94107 action : x86
@@ -105,6 +118,12 @@ jobs:
105118 matrix : macos
106119 arch :
107120 matrix : x86
121+ - os :
122+ matrix : windows
123+ python :
124+ implementation : pypy
125+ arch :
126+ matrix : x64
108127 env :
109128 # Should match name above
110129 JOB_NAME : ${{ matrix.task.name }} - ${{ matrix.os.name }} ${{ matrix.python.name }} ${{ matrix.arch.name }}
@@ -129,7 +148,37 @@ jobs:
129148 pip install --upgrade pip setuptools wheel
130149 pip install --upgrade tox
131150151+ - 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
132177 - 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
133182 run : |
134183 tox -vv -e ${{ matrix.python.tox }}
135184 - name : Coverage Processing
@@ -161,7 +210,6 @@ jobs:
161210 os :
162211 - name : Linux
163212 runs-on : ubuntu-latest
164- python_platform : linux
165213 matrix : linux
166214 container :
167215 3.8 : docker://python:3.8-buster
@@ -195,6 +243,7 @@ jobs:
195243 # Should match JOB_NAME below
196244 name : ${{ matrix.task.name }} - ${{ matrix.os.name }} ${{ matrix.python.name }} ${{ matrix.arch.name }}
197245 runs-on : ${{ matrix.os.runs-on }}
246+ if : always()
198247 needs :
199248 - test
200249 container : ${{ matrix.os.container[matrix.python.docker] }}
@@ -208,7 +257,6 @@ jobs:
208257 os :
209258 - name : Linux
210259 runs-on : ubuntu-latest
211- python_platform : linux
212260 matrix : linux
213261 container :
214262 3.8 : docker://python:3.8-buster
0 commit comments