@@ -248,8 +248,8 @@ jobs:
248248 free-threading : ${{ matrix.free-threading }}
249249 os : ${{ matrix.os }}
250250
251- build-ubuntu-ssltests-openssl :
252- name : ' Ubuntu SSL tests with OpenSSL '
251+ build-ubuntu-ssltests :
252+ name : ' Ubuntu SSL tests'
253253 runs-on : ${{ matrix.os }}
254254 timeout-minutes : 60
255255 needs : build-context
@@ -258,16 +258,34 @@ jobs:
258258 fail-fast : false
259259 matrix :
260260 os : [ubuntu-24.04]
261- # Keep 1.1.1w in our list despite it being upstream EOL and otherwise
262- # unsupported as it most resembles other 1.1.1-work-a-like ssl APIs
263- # supported by important vendors such as AWS-LC.
264- openssl_ver : [1.1.1w, 3.0.19, 3.3.6, 3.4.4, 3.5.5, 3.6.1]
265- # See Tools/ssl/make_ssl_data.py for notes on adding a new version
261+ ssllib :
262+ # See Tools/ssl/make_ssl_data.py for notes on adding a new version
263+ # # OpenSSL
264+ - name : openssl
265+ # Keep 1.1.1w in our list despite it being upstream EOL and otherwise
266+ # unsupported as it most resembles other 1.1.1-work-a-like ssl APIs
267+ # supported by important vendors such as AWS-LC.
268+ version : 1.1.1w
269+ - name : openssl
270+ version : 3.0.19
271+ - name : openssl
272+ version : 3.3.6
273+ - name : openssl
274+ version : 3.4.4
275+ - name : openssl
276+ version : 3.5.5
277+ - name : openssl
278+ version : 3.6.1
279+ # # AWS-LC
280+ - name : aws-lc
281+ version : 1.55.0
282+ - name : aws-lc
283+ version : 1.67.0
266284 env :
267- OPENSSL_VER : ${{ matrix.openssl_ver }}
285+ SSLLIB_VER : ${{ matrix.ssllib.version }}
268286 MULTISSL_DIR : ${{ github.workspace }}/multissl
269- OPENSSL_DIR : ${{ github.workspace }}/multissl/openssl /${{ matrix.openssl_ver }}
270- LD_LIBRARY_PATH : ${{ github.workspace }}/multissl/openssl /${{ matrix.openssl_ver }}/lib
287+ SSLLIB_DIR : ${{ github.workspace }}/multissl/${{ matrix.ssllib.name }} /${{ matrix.ssllib.version }}
288+ LD_LIBRARY_PATH : ${{ github.workspace }}/multissl/${{ matrix.ssllib.name }} /${{ matrix.ssllib.version }}/lib
271289 steps :
272290 - uses : actions/checkout@v6
273291 with :
@@ -278,76 +296,19 @@ jobs:
278296 run : echo "::add-matcher::.github/problem-matchers/gcc.json"
279297 - name : Install dependencies
280298 run : sudo ./.github/workflows/posix-deps-apt.sh
281- - name : Configure OpenSSL env vars
282- run : |
283- echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
284- echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> "$GITHUB_ENV"
285- echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
286- - name : ' Restore OpenSSL build'
287- id : cache-openssl
288- uses : actions/cache@v5
289- with :
290- path : ./multissl/openssl/${{ env.OPENSSL_VER }}
291- key : ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
292- - name : Install OpenSSL
293- if : steps.cache-openssl.outputs.cache-hit != 'true'
294- run : python3 Tools/ssl/multissltests.py --steps=library --base-directory "$MULTISSL_DIR" --openssl "$OPENSSL_VER" --system Linux
295- - name : Add ccache to PATH
296- run : |
297- echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
298- - name : Configure CPython
299- run : ./configure CFLAGS="-fdiagnostics-format=json" --config-cache --enable-slower-safety --with-pydebug --with-openssl="$OPENSSL_DIR"
300- - name : Build CPython
301- run : make -j4
302- - name : Display build info
303- run : make pythoninfo
304- - name : SSL tests
305- run : ./python Lib/test/ssltests.py
306-
307- build-ubuntu-ssltests-awslc :
308- name : ' Ubuntu SSL tests with AWS-LC'
309- runs-on : ${{ matrix.os }}
310- timeout-minutes : 60
311- needs : build-context
312- if : needs.build-context.outputs.run-ubuntu == 'true'
313- strategy :
314- fail-fast : false
315- matrix :
316- os : [ubuntu-24.04]
317- awslc_ver : [1.55.0]
318- env :
319- AWSLC_VER : ${{ matrix.awslc_ver}}
320- MULTISSL_DIR : ${{ github.workspace }}/multissl
321- OPENSSL_DIR : ${{ github.workspace }}/multissl/aws-lc/${{ matrix.awslc_ver }}
322- LD_LIBRARY_PATH : ${{ github.workspace }}/multissl/aws-lc/${{ matrix.awslc_ver }}/lib
323- steps :
324- - uses : actions/checkout@v6
325- with :
326- persist-credentials : false
327- - name : Runner image version
328- run : echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
329- - name : Register gcc problem matcher
330- run : echo "::add-matcher::.github/problem-matchers/gcc.json"
331- - name : Install dependencies
332- run : sudo ./.github/workflows/posix-deps-apt.sh
333- - name : Configure SSL lib env vars
334- run : |
335- echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
336- echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/aws-lc/${AWSLC_VER}" >> "$GITHUB_ENV"
337- echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/aws-lc/${AWSLC_VER}/lib" >> "$GITHUB_ENV"
338- - name : ' Restore AWS-LC build'
339- id : cache-aws-lc
299+ - name : ' Restore SSL library build'
300+ id : cache-ssl-lib
340301 uses : actions/cache@v5
341302 with :
342- path : ./multissl/aws-lc /${{ matrix.awslc_ver }}
343- key : ${{ matrix.os }}-multissl-aws-lc- ${{ matrix.awslc_ver }}
344- - name : Install AWS-LC
345- if : steps.cache-aws-lc .outputs.cache-hit != 'true'
303+ path : ./multissl/${{ matrix.ssllib.name }} /${{ matrix.ssllib.version }}
304+ key : ${{ matrix.os }}-multissl-${{ matrix.ssllib.name }}- ${{ matrix.ssllib.version }}
305+ - name : Install SSL Library
306+ if : steps.cache-ssl-lib .outputs.cache-hit != 'true'
346307 run : |
347308 python3 Tools/ssl/multissltests.py \
348309 --steps=library \
349310 --base-directory "$MULTISSL_DIR" \
350- --awslc ${{ matrix.awslc_ver }} \
311+ --${{ matrix.ssllib.name }} ${{ matrix.ssllib.version }} \
351312 --system Linux
352313 - name : Add ccache to PATH
353314 run : |
@@ -358,15 +319,15 @@ jobs:
358319 --config-cache \
359320 --enable-slower-safety \
360321 --with-pydebug \
361- --with-openssl="$OPENSSL_DIR " \
322+ --with-openssl="$SSLLIB_DIR " \
362323 --with-builtin-hashlib-hashes=blake2 \
363324 --with-ssl-default-suites=openssl
364325 - name : Build CPython
365- run : make -j
326+ run : make -j4
366327 - name : Display build info
367328 run : make pythoninfo
368- - name : Verify python is linked to AWS-LC
369- run : ./python -c 'import ssl; print(ssl.OPENSSL_VERSION)' | grep AWS-LC
329+ - name : Verify python is linked to the right lib
330+ run : ./python -c 'import ssl; print(ssl.OPENSSL_VERSION)' | grep -i ${{ matrix.ssllib.name }}
370331 - name : SSL tests
371332 run : ./python Lib/test/ssltests.py
372333
@@ -698,8 +659,7 @@ jobs:
698659 - build-windows-msi
699660 - build-macos
700661 - build-ubuntu
701- - build-ubuntu-ssltests-awslc
702- - build-ubuntu-ssltests-openssl
662+ - build-ubuntu-ssltests
703663 - build-ios
704664 - build-wasi
705665 - test-hypothesis
@@ -716,8 +676,7 @@ jobs:
716676 allowed-failures : >-
717677 build-android,
718678 build-windows-msi,
719- build-ubuntu-ssltests-awslc,
720- build-ubuntu-ssltests-openssl,
679+ build-ubuntu-ssltests,
721680 test-hypothesis,
722681 cifuzz,
723682 allowed-skips : >-
@@ -748,8 +707,7 @@ jobs:
748707 !fromJSON(needs.build-context.outputs.run-ubuntu)
749708 && '
750709 build-ubuntu,
751- build-ubuntu-ssltests-awslc,
752- build-ubuntu-ssltests-openssl,
710+ build-ubuntu-ssltests,
753711 test-hypothesis,
754712 build-asan,
755713 build-san,
0 commit comments