@@ -388,6 +388,68 @@ jobs:
388
388
- name : SSL tests
389
389
run : ./python Lib/test/ssltests.py
390
390
391
+ build_nogil :
392
+ name : ' Build nogil(experimental)'
393
+ runs-on : ubuntu-20.04
394
+ timeout-minutes : 60
395
+ needs : check_source
396
+ if : needs.check_source.outputs.run_tests == 'true' && github.base_ref == 'main'
397
+ env :
398
+ OPENSSL_VER : 3.0.11
399
+ PYTHONSTRICTEXTENSIONBUILD : 1
400
+ steps :
401
+ - uses : actions/checkout@v4
402
+ - name : Register gcc problem matcher
403
+ run : echo "::add-matcher::.github/problem-matchers/gcc.json"
404
+ - name : Install Dependencies
405
+ run : sudo ./.github/workflows/posix-deps-apt.sh
406
+ - name : Configure OpenSSL env vars
407
+ run : |
408
+ echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV
409
+ echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV
410
+ echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV
411
+ - name : ' Restore OpenSSL build'
412
+ id : cache-openssl
413
+ uses : actions/cache@v3
414
+ with :
415
+ path : ./multissl/openssl/${{ env.OPENSSL_VER }}
416
+ key : ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
417
+ - name : Install OpenSSL
418
+ if : steps.cache-openssl.outputs.cache-hit != 'true'
419
+ run : python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux
420
+ - name : Add ccache to PATH
421
+ run : |
422
+ echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
423
+ - name : Configure ccache action
424
+ uses :
hendrikmuhs/[email protected]
425
+ - name : Setup directory envs for out-of-tree builds
426
+ run : |
427
+ echo "CPYTHON_RO_SRCDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-ro-srcdir)" >> $GITHUB_ENV
428
+ echo "CPYTHON_BUILDDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-builddir)" >> $GITHUB_ENV
429
+ - name : Create directories for read-only out-of-tree builds
430
+ run : mkdir -p $CPYTHON_RO_SRCDIR $CPYTHON_BUILDDIR
431
+ - name : Bind mount sources read-only
432
+ run : sudo mount --bind -o ro $GITHUB_WORKSPACE $CPYTHON_RO_SRCDIR
433
+ - name : Restore config.cache
434
+ uses : actions/cache@v3
435
+ with :
436
+ path : ${{ env.CPYTHON_BUILDDIR }}/config.cache
437
+ key : ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }}
438
+ - name : Configure CPython out-of-tree
439
+ working-directory : ${{ env.CPYTHON_BUILDDIR }}
440
+ run : |
441
+ ../cpython-ro-srcdir/configure \
442
+ --config-cache \
443
+ --with-pydebug \
444
+ --disable-gil \
445
+ --with-openssl=$OPENSSL_DIR
446
+ - name : Build CPython out-of-tree
447
+ working-directory : ${{ env.CPYTHON_BUILDDIR }}
448
+ run : make -j4
449
+ - name : Display build info
450
+ working-directory : ${{ env.CPYTHON_BUILDDIR }}
451
+ run : make pythoninfo
452
+
391
453
test_hypothesis :
392
454
name : " Hypothesis tests on Ubuntu"
393
455
runs-on : ubuntu-20.04
0 commit comments