@@ -253,8 +253,8 @@ jobs:
253253 os : ${{ matrix.os }}
254254 test-opts : ${{ matrix.test-opts || '' }}
255255
256- build-ubuntu-ssltests-openssl :
257- name : ' Ubuntu SSL tests with OpenSSL '
256+ build-ubuntu-ssltests :
257+ name : ' Ubuntu SSL tests'
258258 runs-on : ${{ matrix.os }}
259259 timeout-minutes : 60
260260 needs : build-context
@@ -263,16 +263,25 @@ jobs:
263263 fail-fast : false
264264 matrix :
265265 os : [ubuntu-24.04]
266- # Keep 1.1.1w in our list despite it being upstream EOL and otherwise
267- # unsupported as it most resembles other 1.1.1-work-a-like ssl APIs
268- # supported by important vendors such as AWS-LC.
269- openssl_ver : [1.1.1w, 3.0.19, 3.3.6, 3.4.4, 3.5.5, 3.6.1]
270- # See Tools/ssl/make_ssl_data.py for notes on adding a new version
266+ ssllib :
267+ # See Tools/ssl/make_ssl_data.py for notes on adding a new version
268+ # # OpenSSL
269+ # Keep 1.1.1w in our list despite it being upstream EOL and otherwise
270+ # unsupported as it most resembles other 1.1.1-work-a-like ssl APIs
271+ # supported by important vendors such as AWS-LC.
272+ - { name: openssl, version: 1.1.1w }
273+ - { name: openssl, version: 3.0.19 }
274+ - { name: openssl, version: 3.3.6 }
275+ - { name: openssl, version: 3.4.4 }
276+ - { name: openssl, version: 3.5.5 }
277+ - { name: openssl, version: 3.6.1 }
278+ # # AWS-LC
279+ - { name: aws-lc, version: 1.68.0 }
271280 env :
272- OPENSSL_VER : ${{ matrix.openssl_ver }}
281+ SSLLIB_VER : ${{ matrix.ssllib.version }}
273282 MULTISSL_DIR : ${{ github.workspace }}/multissl
274- OPENSSL_DIR : ${{ github.workspace }}/multissl/openssl /${{ matrix.openssl_ver }}
275- LD_LIBRARY_PATH : ${{ github.workspace }}/multissl/openssl /${{ matrix.openssl_ver }}/lib
283+ SSLLIB_DIR : ${{ github.workspace }}/multissl/${{ matrix.ssllib.name }} /${{ matrix.ssllib.version }}
284+ LD_LIBRARY_PATH : ${{ github.workspace }}/multissl/${{ matrix.ssllib.name }} /${{ matrix.ssllib.version }}/lib
276285 steps :
277286 - uses : actions/checkout@v6
278287 with :
@@ -283,89 +292,37 @@ jobs:
283292 run : echo "::add-matcher::.github/problem-matchers/gcc.json"
284293 - name : Install dependencies
285294 run : sudo ./.github/workflows/posix-deps-apt.sh
286- - name : Configure OpenSSL env vars
287- run : |
288- echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
289- echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> "$GITHUB_ENV"
290- echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
291- - name : ' Restore OpenSSL build'
292- id : cache-openssl
293- uses : actions/cache@v5
294- with :
295- path : ./multissl/openssl/${{ env.OPENSSL_VER }}
296- key : ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
297- - name : Install OpenSSL
298- if : steps.cache-openssl.outputs.cache-hit != 'true'
299- run : python3 Tools/ssl/multissltests.py --steps=library --base-directory "$MULTISSL_DIR" --openssl "$OPENSSL_VER" --system Linux
300- - name : Configure CPython
301- run : ./configure CFLAGS="-fdiagnostics-format=json" --config-cache --enable-slower-safety --with-pydebug --with-openssl="$OPENSSL_DIR"
302- - name : Build CPython
303- run : make -j4
304- - name : Display build info
305- run : make pythoninfo
306- - name : SSL tests
307- run : ./python Lib/test/ssltests.py
308-
309- build-ubuntu-ssltests-awslc :
310- name : ' Ubuntu SSL tests with AWS-LC'
311- runs-on : ${{ matrix.os }}
312- timeout-minutes : 60
313- needs : build-context
314- if : needs.build-context.outputs.run-ubuntu == 'true'
315- strategy :
316- fail-fast : false
317- matrix :
318- os : [ubuntu-24.04]
319- awslc_ver : [1.55.0]
320- env :
321- AWSLC_VER : ${{ matrix.awslc_ver}}
322- MULTISSL_DIR : ${{ github.workspace }}/multissl
323- OPENSSL_DIR : ${{ github.workspace }}/multissl/aws-lc/${{ matrix.awslc_ver }}
324- LD_LIBRARY_PATH : ${{ github.workspace }}/multissl/aws-lc/${{ matrix.awslc_ver }}/lib
325- steps :
326- - uses : actions/checkout@v6
327- with :
328- persist-credentials : false
329- - name : Runner image version
330- run : echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
331- - name : Register gcc problem matcher
332- run : echo "::add-matcher::.github/problem-matchers/gcc.json"
333- - name : Install dependencies
334- run : sudo ./.github/workflows/posix-deps-apt.sh
335- - name : Configure SSL lib env vars
336- run : |
337- echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
338- echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/aws-lc/${AWSLC_VER}" >> "$GITHUB_ENV"
339- echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/aws-lc/${AWSLC_VER}/lib" >> "$GITHUB_ENV"
340- - name : ' Restore AWS-LC build'
341- id : cache-aws-lc
295+ - name : ' Restore SSL library build'
296+ id : cache-ssl-lib
342297 uses : actions/cache@v5
343298 with :
344- path : ./multissl/aws-lc /${{ matrix.awslc_ver }}
345- key : ${{ matrix.os }}-multissl-aws-lc- ${{ matrix.awslc_ver }}
346- - name : Install AWS-LC
347- if : steps.cache-aws-lc .outputs.cache-hit != 'true'
299+ path : ./multissl/${{ matrix.ssllib.name }} /${{ matrix.ssllib.version }}
300+ key : ${{ matrix.os }}-multissl-${{ matrix.ssllib.name }}- ${{ matrix.ssllib.version }}
301+ - name : Install SSL Library
302+ if : steps.cache-ssl-lib .outputs.cache-hit != 'true'
348303 run : |
349304 python3 Tools/ssl/multissltests.py \
350305 --steps=library \
351306 --base-directory "$MULTISSL_DIR" \
352- --awslc ${{ matrix.awslc_ver }} \
307+ '--${{ matrix.ssllib.name }}' ' ${{ matrix.ssllib.version }}' \
353308 --system Linux
354309 - name : Configure CPython
355310 run : |
356311 ./configure CFLAGS="-fdiagnostics-format=json" \
357312 --config-cache \
358313 --enable-slower-safety \
359314 --with-pydebug \
360- --with-openssl="$OPENSSL_DIR " \
315+ --with-openssl="$SSLLIB_DIR " \
361316 --with-builtin-hashlib-hashes=blake2 \
362317 --with-ssl-default-suites=openssl
363318 - name : Build CPython
364- run : make -j
319+ run : make -j4
365320 - name : Display build info
366321 run : make pythoninfo
367- - name : Verify python is linked to AWS-LC
368- run : ./python -c 'import ssl; print(ssl.OPENSSL_VERSION)' | grep AWS-LC
322+ - name : Verify python is linked to the right lib
323+ run : |
324+ ./python -c 'import ssl; print(ssl.OPENSSL_VERSION)' \
325+ | grep -iE '${{ matrix.ssllib.name }}.*${{ matrix.ssllib.version }}'
369326 - name : SSL tests
370327 run : ./python Lib/test/ssltests.py
371328
@@ -691,8 +648,7 @@ jobs:
691648 - build-windows-msi
692649 - build-macos
693650 - build-ubuntu
694- - build-ubuntu-ssltests-awslc
695- - build-ubuntu-ssltests-openssl
651+ - build-ubuntu-ssltests
696652 - build-ios
697653 - build-wasi
698654 - test-hypothesis
@@ -709,8 +665,7 @@ jobs:
709665 allowed-failures : >-
710666 build-android,
711667 build-windows-msi,
712- build-ubuntu-ssltests-awslc,
713- build-ubuntu-ssltests-openssl,
668+ build-ubuntu-ssltests,
714669 test-hypothesis,
715670 cifuzz,
716671 allowed-skips : >-
@@ -741,8 +696,7 @@ jobs:
741696 !fromJSON(needs.build-context.outputs.run-ubuntu)
742697 && '
743698 build-ubuntu,
744- build-ubuntu-ssltests-awslc,
745- build-ubuntu-ssltests-openssl,
699+ build-ubuntu-ssltests,
746700 test-hypothesis,
747701 build-asan,
748702 build-san,
0 commit comments