@@ -23,13 +23,15 @@ jobs:
23
23
runs-on : ubuntu-latest
24
24
outputs :
25
25
run_tests : ${{ steps.check.outputs.run_tests }}
26
+ run_ssl_tests : ${{ steps.check.outputs.run_ssl_tests }}
26
27
steps :
27
28
- uses : actions/checkout@v2
28
29
- name : Check for source changes
29
30
id : check
30
31
run : |
31
32
if [ -z "$GITHUB_BASE_REF" ]; then
32
33
echo '::set-output name=run_tests::true'
34
+ echo '::set-output name=run_ssl_tests::true'
33
35
else
34
36
git fetch origin $GITHUB_BASE_REF --depth=1
35
37
# git diff "origin/$GITHUB_BASE_REF..." (3 dots) may be more
46
48
#
47
49
# https://github.com/python/core-workflow/issues/373
48
50
git diff --name-only origin/$GITHUB_BASE_REF.. | grep -qvE '(\.rst$|^Doc|^Misc)' && echo '::set-output name=run_tests::true' || true
51
+ git diff --name-only origin/$GITHUB_BASE_REF.. | grep -qE '(ssl|hashlib|hmac|^.github)' && echo '::set-output name=run_ssl_tests::true' || true
49
52
fi
50
53
51
54
check_generated_files :
@@ -138,6 +141,11 @@ jobs:
138
141
run : echo "::add-matcher::.github/problem-matchers/gcc.json"
139
142
- name : Install Dependencies
140
143
run : sudo ./.github/workflows/posix-deps-apt.sh
144
+ - name : Configure OpenSSL env vars
145
+ run : |
146
+ echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV
147
+ echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV
148
+ echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV
141
149
- name : ' Restore OpenSSL build'
142
150
id : cache-openssl
143
151
uses : actions/cache@v2.1.4
@@ -146,12 +154,65 @@ jobs:
146
154
key : ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
147
155
- name : Install OpenSSL
148
156
if : steps.cache-openssl.outputs.cache-hit != 'true'
149
- run : python3 Tools/ssl/multissltests.py --steps=library --base-directory $PWD/multissl --openssl $OPENSSL_VER --system Linux
157
+ run : python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux
158
+ - name : Add ccache to PATH
159
+ run : |
160
+ echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
161
+ - name : Configure ccache action
162
+ uses : hendrikmuhs/ccache-action@v1
150
163
- name : Configure CPython
151
- run : ./configure --with-pydebug --with-openssl=$PWD/multissl/openssl/$OPENSSL_VER
164
+ run : ./configure --with-pydebug --with-openssl=$OPENSSL_DIR
152
165
- name : Build CPython
153
166
run : make -j4
154
167
- name : Display build info
155
168
run : make pythoninfo
156
169
- name : Tests
157
170
run : xvfb-run make buildbottest TESTOPTS="-j4 -uall,-cpu"
171
+
172
+ build_ubuntu_ssltests :
173
+ name : ' Ubuntu SSL tests with OpenSSL ${{ matrix.openssl_ver }}'
174
+ runs-on : ubuntu-20.04
175
+ needs : check_source
176
+ if : needs.check_source.outputs.run_tests == 'true' && needs.check_source.outputs.run_ssl_tests == 'true'
177
+ strategy :
178
+ fail-fast : false
179
+ matrix :
180
+ openssl_ver : [1.0.2u, 1.1.0l, 1.1.1k, 3.0.0-alpha14]
181
+ env :
182
+ OPENSSL_VER : ${{ matrix.openssl_ver }}
183
+ MULTISSL_DIR : ${{ github.workspace }}/multissl
184
+ OPENSSL_DIR : ${{ github.workspace }}/multissl/openssl/${{ matrix.openssl_ver }}
185
+ LD_LIBRARY_PATH : ${{ github.workspace }}/multissl/openssl/${{ matrix.openssl_ver }}/lib
186
+ steps :
187
+ - uses : actions/checkout@v2
188
+ - name : Register gcc problem matcher
189
+ run : echo "::add-matcher::.github/problem-matchers/gcc.json"
190
+ - name : Install Dependencies
191
+ run : sudo ./.github/workflows/posix-deps-apt.sh
192
+ - name : Configure OpenSSL env vars
193
+ run : |
194
+ echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV
195
+ echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV
196
+ echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV
197
+ - name : ' Restore OpenSSL build'
198
+ id : cache-openssl
199
+ uses : actions/cache@v2.1.4
200
+ with :
201
+ path : ./multissl/openssl/${{ env.OPENSSL_VER }}
202
+ key : ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
203
+ - name : Install OpenSSL
204
+ if : steps.cache-openssl.outputs.cache-hit != 'true'
205
+ run : python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux
206
+ - name : Add ccache to PATH
207
+ run : |
208
+ echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
209
+ - name : Configure ccache action
210
+ uses : hendrikmuhs/ccache-action@v1
211
+ - name : Configure CPython
212
+ run : ./configure --with-pydebug --with-openssl=$OPENSSL_DIR
213
+ - name : Build CPython
214
+ run : make -j4
215
+ - name : Display build info
216
+ run : make pythoninfo
217
+ - name : SSL tests
218
+ run : ./python Lib/test/ssltests.py
0 commit comments