Skip to content

Commit 61c8ef3

Browse files
committed
gh-136728: Combine OpenSSL and AWS-LC CI configurations
1 parent 629a363 commit 61c8ef3

File tree

2 files changed

+45
-84
lines changed

2 files changed

+45
-84
lines changed

.github/workflows/build.yml

Lines changed: 42 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -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,

Tools/ssl/multissltests.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565

6666
AWSLC_RECENT_VERSIONS = [
6767
"1.55.0",
68+
"1.67.0",
6869
]
6970

7071
# store files in ../multissl
@@ -108,6 +109,8 @@
108109
).format(LIBRESSL_RECENT_VERSIONS, LIBRESSL_OLD_VERSIONS)
109110
)
110111
parser.add_argument(
112+
'--aws-lc',
113+
# Soft-deprecated alias
111114
'--awslc',
112115
nargs='+',
113116
default=(),

0 commit comments

Comments
 (0)