@@ -111,8 +111,6 @@ jobs:
111111 run : echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
112112 - name : Install dependencies
113113 run : sudo ./.github/workflows/posix-deps-apt.sh
114- - name : Add ccache to PATH
115- run : echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
116114 - name : Configure CPython
117115 run : |
118116 # Build Python with the libpython dynamic library
@@ -242,14 +240,21 @@ jobs:
242240 # BOLT currently crashes during instrumentation on aarch64
243241 - os : ubuntu-24.04-arm
244242 bolt : true
243+ include :
244+ # Enable CPU-intensive tests on ARM (default build only)
245+ - os : ubuntu-24.04-arm
246+ bolt : false
247+ free-threading : false
248+ test-opts : ' -u cpu'
245249 uses : ./.github/workflows/reusable-ubuntu.yml
246250 with :
247251 bolt-optimizations : ${{ matrix.bolt }}
248252 free-threading : ${{ matrix.free-threading }}
249253 os : ${{ matrix.os }}
254+ test-opts : ${{ matrix.test-opts || '' }}
250255
251- build-ubuntu-ssltests-openssl :
252- name : ' Ubuntu SSL tests with OpenSSL '
256+ build-ubuntu-ssltests :
257+ name : ' Ubuntu SSL tests'
253258 runs-on : ${{ matrix.os }}
254259 timeout-minutes : 60
255260 needs : build-context
@@ -258,16 +263,25 @@ jobs:
258263 fail-fast : false
259264 matrix :
260265 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.18, 3.3.5, 3.4.3, 3.5.4, 3.6.0]
265- # 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 }
266280 env :
267- OPENSSL_VER : ${{ matrix.openssl_ver }}
281+ SSLLIB_VER : ${{ matrix.ssllib.version }}
268282 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
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
271285 steps :
272286 - uses : actions/checkout@v6
273287 with :
@@ -278,95 +292,37 @@ jobs:
278292 run : echo "::add-matcher::.github/problem-matchers/gcc.json"
279293 - name : Install dependencies
280294 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
295+ - name : ' Restore SSL library build'
296+ id : cache-ssl-lib
288297 uses : actions/cache@v5
289298 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
340- uses : actions/cache@v5
341- 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'
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'
346303 run : |
347304 python3 Tools/ssl/multissltests.py \
348305 --steps=library \
349306 --base-directory "$MULTISSL_DIR" \
350- --awslc ${{ matrix.awslc_ver }} \
307+ '--${{ matrix.ssllib.name }}' ' ${{ matrix.ssllib.version }}' \
351308 --system Linux
352- - name : Add ccache to PATH
353- run : |
354- echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
355309 - name : Configure CPython
356310 run : |
357311 ./configure CFLAGS="-fdiagnostics-format=json" \
358312 --config-cache \
359313 --enable-slower-safety \
360314 --with-pydebug \
361- --with-openssl="$OPENSSL_DIR " \
315+ --with-openssl="$SSLLIB_DIR " \
362316 --with-builtin-hashlib-hashes=blake2 \
363317 --with-ssl-default-suites=openssl
364318 - name : Build CPython
365- run : make -j
319+ run : make -j4
366320 - name : Display build info
367321 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
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 }}'
370326 - name : SSL tests
371327 run : ./python Lib/test/ssltests.py
372328
@@ -428,7 +384,7 @@ jobs:
428384 needs : build-context
429385 if : needs.build-context.outputs.run-ubuntu == 'true'
430386 env :
431- OPENSSL_VER : 3.0.18
387+ OPENSSL_VER : 3.5.5
432388 PYTHONSTRICTEXTENSIONBUILD : 1
433389 steps :
434390 - uses : actions/checkout@v6
@@ -452,9 +408,6 @@ jobs:
452408 - name : Install OpenSSL
453409 if : steps.cache-openssl.outputs.cache-hit != 'true'
454410 run : python3 Tools/ssl/multissltests.py --steps=library --base-directory "$MULTISSL_DIR" --openssl "$OPENSSL_VER" --system Linux
455- - name : Add ccache to PATH
456- run : |
457- echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
458411 - name : Setup directory envs for out-of-tree builds
459412 run : |
460413 echo "CPYTHON_RO_SRCDIR=$(realpath -m "${GITHUB_WORKSPACE}"/../cpython-ro-srcdir)" >> "$GITHUB_ENV"
@@ -539,7 +492,7 @@ jobs:
539492 matrix :
540493 os : [ubuntu-24.04]
541494 env :
542- OPENSSL_VER : 3.0.18
495+ OPENSSL_VER : 3.5.5
543496 PYTHONSTRICTEXTENSIONBUILD : 1
544497 ASAN_OPTIONS : detect_leaks=0:allocator_may_return_null=1:handle_segv=0
545498 steps :
@@ -570,11 +523,8 @@ jobs:
570523 - name : Install OpenSSL
571524 if : steps.cache-openssl.outputs.cache-hit != 'true'
572525 run : python3 Tools/ssl/multissltests.py --steps=library --base-directory "$MULTISSL_DIR" --openssl "$OPENSSL_VER" --system Linux
573- - name : Add ccache to PATH
574- run : |
575- echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
576526 - name : Configure CPython
577- run : ./configure --config-cache --with-address-sanitizer --without-pymalloc
527+ run : ./configure --config-cache --with-address-sanitizer --without-pymalloc --with-openssl="$OPENSSL_DIR"
578528 - name : Build CPython
579529 run : make -j4
580530 - name : Display build info
@@ -698,8 +648,7 @@ jobs:
698648 - build-windows-msi
699649 - build-macos
700650 - build-ubuntu
701- - build-ubuntu-ssltests-awslc
702- - build-ubuntu-ssltests-openssl
651+ - build-ubuntu-ssltests
703652 - build-ios
704653 - build-wasi
705654 - test-hypothesis
@@ -716,8 +665,7 @@ jobs:
716665 allowed-failures : >-
717666 build-android,
718667 build-windows-msi,
719- build-ubuntu-ssltests-awslc,
720- build-ubuntu-ssltests-openssl,
668+ build-ubuntu-ssltests,
721669 test-hypothesis,
722670 cifuzz,
723671 allowed-skips : >-
@@ -748,8 +696,7 @@ jobs:
748696 !fromJSON(needs.build-context.outputs.run-ubuntu)
749697 && '
750698 build-ubuntu,
751- build-ubuntu-ssltests-awslc,
752- build-ubuntu-ssltests-openssl,
699+ build-ubuntu-ssltests,
753700 test-hypothesis,
754701 build-asan,
755702 build-san,
0 commit comments