5
5
push :
6
6
branches :
7
7
- ' main'
8
- - ' 3.12'
9
- - ' 3.11'
10
- - ' 3.10'
11
- - ' 3.9'
12
- - ' 3.8'
8
+ - ' 3.*'
13
9
pull_request :
14
10
branches :
15
11
- ' main'
16
- - ' 3.12'
17
- - ' 3.11'
18
- - ' 3.10'
19
- - ' 3.9'
20
- - ' 3.8'
12
+ - ' 3.*'
21
13
22
14
permissions :
23
15
contents : read
@@ -115,8 +107,6 @@ jobs:
115
107
with :
116
108
fetch-depth : 1
117
109
persist-credentials : false
118
- - name : Runner image version
119
- run : echo "IMAGE_VERSION=${ImageVersion}" >> $GITHUB_ENV
120
110
- name : Check Autoconf and aclocal versions
121
111
run : |
122
112
grep "Generated by GNU Autoconf 2.71" configure
@@ -157,16 +147,17 @@ jobs:
157
147
with :
158
148
python-version : ' 3.x'
159
149
- name : Runner image version
160
- run : echo "IMAGE_VERSION =${ImageVersion}" >> $GITHUB_ENV
150
+ run : echo "IMAGE_OS_VERSION =${ImageOS}-${ ImageVersion}" >> " $GITHUB_ENV"
161
151
- name : Restore config.cache
162
152
uses : actions/cache@v4
163
153
with :
164
154
path : config.cache
165
- key : ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.check_source.outputs.config_hash }}-${{ env.pythonLocation }}
166
- - name : Install Dependencies
155
+ # Include env.pythonLocation in key to avoid changes in environment when setup-python updates Python
156
+ key : ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.check_source.outputs.config_hash }}-${{ env.pythonLocation }}
157
+ - name : Install dependencies
167
158
run : sudo ./.github/workflows/posix-deps-apt.sh
168
159
- name : Add ccache to PATH
169
- run : echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
160
+ run : echo "PATH=/usr/lib/ccache:$PATH" >> " $GITHUB_ENV"
170
161
- name : Configure ccache action
171
162
uses :
hendrikmuhs/[email protected]
172
163
with :
@@ -310,21 +301,21 @@ jobs:
310
301
with :
311
302
persist-credentials : false
312
303
- name : Runner image version
313
- run : echo "IMAGE_VERSION =${ImageVersion}" >> $GITHUB_ENV
304
+ run : echo "IMAGE_OS_VERSION =${ImageOS}-${ ImageVersion}" >> " $GITHUB_ENV"
314
305
- name : Restore config.cache
315
306
uses : actions/cache@v4
316
307
with :
317
308
path : config.cache
318
- key : ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.check_source.outputs.config_hash }}
309
+ key : ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.check_source.outputs.config_hash }}
319
310
- name : Register gcc problem matcher
320
311
run : echo "::add-matcher::.github/problem-matchers/gcc.json"
321
- - name : Install Dependencies
312
+ - name : Install dependencies
322
313
run : sudo ./.github/workflows/posix-deps-apt.sh
323
314
- name : Configure OpenSSL env vars
324
315
run : |
325
- echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV
326
- echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV
327
- echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV
316
+ echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> " $GITHUB_ENV"
317
+ echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> " $GITHUB_ENV"
318
+ echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> " $GITHUB_ENV"
328
319
- name : ' Restore OpenSSL build'
329
320
id : cache-openssl
330
321
uses : actions/cache@v4
@@ -333,10 +324,10 @@ jobs:
333
324
key : ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
334
325
- name : Install OpenSSL
335
326
if : steps.cache-openssl.outputs.cache-hit != 'true'
336
- run : python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux
327
+ run : python3 Tools/ssl/multissltests.py --steps=library --base-directory " $MULTISSL_DIR" --openssl " $OPENSSL_VER" --system Linux
337
328
- name : Add ccache to PATH
338
329
run : |
339
- echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
330
+ echo "PATH=/usr/lib/ccache:$PATH" >> " $GITHUB_ENV"
340
331
- name : Configure ccache action
341
332
uses :
hendrikmuhs/[email protected]
342
333
with :
@@ -369,9 +360,9 @@ jobs:
369
360
run : sudo ./.github/workflows/posix-deps-apt.sh
370
361
- name : Configure OpenSSL env vars
371
362
run : |
372
- echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV
373
- echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV
374
- echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV
363
+ echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> " $GITHUB_ENV"
364
+ echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> " $GITHUB_ENV"
365
+ echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> " $GITHUB_ENV"
375
366
- name : ' Restore OpenSSL build'
376
367
id : cache-openssl
377
368
uses : actions/cache@v4
@@ -380,36 +371,36 @@ jobs:
380
371
key : ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
381
372
- name : Install OpenSSL
382
373
if : steps.cache-openssl.outputs.cache-hit != 'true'
383
- run : python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux
374
+ run : python3 Tools/ssl/multissltests.py --steps=library --base-directory " $MULTISSL_DIR" --openssl " $OPENSSL_VER" --system Linux
384
375
- name : Add ccache to PATH
385
376
run : |
386
- echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
377
+ echo "PATH=/usr/lib/ccache:$PATH" >> " $GITHUB_ENV"
387
378
- name : Configure ccache action
388
379
uses :
hendrikmuhs/[email protected]
389
380
with :
390
381
save : false
391
382
- name : Setup directory envs for out-of-tree builds
392
383
run : |
393
- echo "CPYTHON_RO_SRCDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-ro-srcdir)" >> $GITHUB_ENV
394
- echo "CPYTHON_BUILDDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-builddir)" >> $GITHUB_ENV
384
+ echo "CPYTHON_RO_SRCDIR=$(realpath -m " ${GITHUB_WORKSPACE}" /../cpython-ro-srcdir)" >> " $GITHUB_ENV"
385
+ echo "CPYTHON_BUILDDIR=$(realpath -m " ${GITHUB_WORKSPACE}" /../cpython-builddir)" >> " $GITHUB_ENV"
395
386
- name : Create directories for read-only out-of-tree builds
396
- run : mkdir -p $CPYTHON_RO_SRCDIR $CPYTHON_BUILDDIR
387
+ run : mkdir -p " $CPYTHON_RO_SRCDIR" " $CPYTHON_BUILDDIR"
397
388
- name : Bind mount sources read-only
398
- run : sudo mount --bind -o ro $GITHUB_WORKSPACE $CPYTHON_RO_SRCDIR
389
+ run : sudo mount --bind -o ro " $GITHUB_WORKSPACE" " $CPYTHON_RO_SRCDIR"
399
390
- name : Runner image version
400
- run : echo "IMAGE_VERSION =${ImageVersion}" >> $GITHUB_ENV
391
+ run : echo "IMAGE_OS_VERSION =${ImageOS}-${ ImageVersion}" >> " $GITHUB_ENV"
401
392
- name : Restore config.cache
402
393
uses : actions/cache@v4
403
394
with :
404
395
path : ${{ env.CPYTHON_BUILDDIR }}/config.cache
405
- key : ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.check_source.outputs.config_hash }}
396
+ key : ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.check_source.outputs.config_hash }}
406
397
- name : Configure CPython out-of-tree
407
398
working-directory : ${{ env.CPYTHON_BUILDDIR }}
408
399
run : |
409
400
../cpython-ro-srcdir/configure \
410
401
--config-cache \
411
402
--with-pydebug \
412
- --with-openssl=$OPENSSL_DIR
403
+ --with-openssl=" $OPENSSL_DIR"
413
404
- name : Build CPython out-of-tree
414
405
working-directory : ${{ env.CPYTHON_BUILDDIR }}
415
406
run : make -j4
@@ -418,18 +409,18 @@ jobs:
418
409
run : make pythoninfo
419
410
- name : Remount sources writable for tests
420
411
# some tests write to srcdir, lack of pyc files slows down testing
421
- run : sudo mount $CPYTHON_RO_SRCDIR -oremount,rw
412
+ run : sudo mount " $CPYTHON_RO_SRCDIR" -oremount,rw
422
413
- name : Setup directory envs for out-of-tree builds
423
414
run : |
424
- echo "CPYTHON_BUILDDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-builddir)" >> $GITHUB_ENV
415
+ echo "CPYTHON_BUILDDIR=$(realpath -m " ${GITHUB_WORKSPACE}" /../cpython-builddir)" >> " $GITHUB_ENV"
425
416
- name : " Create hypothesis venv"
426
417
working-directory : ${{ env.CPYTHON_BUILDDIR }}
427
418
run : |
428
419
VENV_LOC=$(realpath -m .)/hypovenv
429
420
VENV_PYTHON=$VENV_LOC/bin/python
430
- echo "HYPOVENV=${VENV_LOC}" >> $GITHUB_ENV
431
- echo "VENV_PYTHON=${VENV_PYTHON}" >> $GITHUB_ENV
432
- ./python -m venv $VENV_LOC && $VENV_PYTHON -m pip install -r ${GITHUB_WORKSPACE}/Tools/requirements-hypothesis.txt
421
+ echo "HYPOVENV=${VENV_LOC}" >> " $GITHUB_ENV"
422
+ echo "VENV_PYTHON=${VENV_PYTHON}" >> " $GITHUB_ENV"
423
+ ./python -m venv " $VENV_LOC" && " $VENV_PYTHON" -m pip install -r " ${GITHUB_WORKSPACE}/Tools/requirements-hypothesis.txt"
433
424
- name : ' Restore Hypothesis database'
434
425
id : cache-hypothesis-database
435
426
uses : actions/cache@v4
@@ -483,25 +474,25 @@ jobs:
483
474
with :
484
475
persist-credentials : false
485
476
- name : Runner image version
486
- run : echo "IMAGE_VERSION =${ImageVersion}" >> $GITHUB_ENV
477
+ run : echo "IMAGE_OS_VERSION =${ImageOS}-${ ImageVersion}" >> " $GITHUB_ENV"
487
478
- name : Restore config.cache
488
479
uses : actions/cache@v4
489
480
with :
490
481
path : config.cache
491
- key : ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.check_source.outputs.config_hash }}
482
+ key : ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.check_source.outputs.config_hash }}
492
483
- name : Register gcc problem matcher
493
484
run : echo "::add-matcher::.github/problem-matchers/gcc.json"
494
- - name : Install Dependencies
485
+ - name : Install dependencies
495
486
run : sudo ./.github/workflows/posix-deps-apt.sh
496
487
- name : Set up GCC-10 for ASAN
497
488
uses : egor-tensin/setup-gcc@v1
498
489
with :
499
490
version : 10
500
491
- name : Configure OpenSSL env vars
501
492
run : |
502
- echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV
503
- echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV
504
- echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV
493
+ echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> " $GITHUB_ENV"
494
+ echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> " $GITHUB_ENV"
495
+ echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> " $GITHUB_ENV"
505
496
- name : ' Restore OpenSSL build'
506
497
id : cache-openssl
507
498
uses : actions/cache@v4
@@ -510,10 +501,10 @@ jobs:
510
501
key : ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
511
502
- name : Install OpenSSL
512
503
if : steps.cache-openssl.outputs.cache-hit != 'true'
513
- run : python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux
504
+ run : python3 Tools/ssl/multissltests.py --steps=library --base-directory " $MULTISSL_DIR" --openssl " $OPENSSL_VER" --system Linux
514
505
- name : Add ccache to PATH
515
506
run : |
516
- echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
507
+ echo "PATH=/usr/lib/ccache:$PATH" >> " $GITHUB_ENV"
517
508
- name : Configure ccache action
518
509
uses :
hendrikmuhs/[email protected]
519
510
with :
0 commit comments