diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3373a0616b66c4..472e3412a82f2d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -146,37 +146,37 @@ jobs: grep "aclocal 1.16.4" aclocal.m4 grep -q "runstatedir" configure grep -q "PKG_PROG_PKG_CONFIG" aclocal.m4 - - name: Configure CPython - run: | - # Build Python with the libpython dynamic library - ./configure --config-cache --with-pydebug --enable-shared - - name: Regenerate autoconf files with container image - run: make regen-configure - - name: Build CPython - run: | - make -j4 regen-all - make regen-stdlib-module-names - - name: Check for changes - run: | - git add -u - changes=$(git status --porcelain) - # Check for changes in regenerated files - if test -n "$changes"; then - echo "Generated files not up to date." - echo "Perhaps you forgot to run make regen-all or build.bat --regen. ;)" - echo "configure files must be regenerated with a specific version of autoconf." - echo "$changes" - echo "" - git diff --staged || true - exit 1 - fi - - name: Check exported libpython symbols - run: make smelly - - name: Check limited ABI symbols - run: make check-limited-abi - - name: Check for unsupported C global variables - if: github.event_name == 'pull_request' # $GITHUB_EVENT_NAME - run: make check-c-globals + # - name: Configure CPython + # run: | + # # Build Python with the libpython dynamic library + # ./configure --config-cache --with-pydebug --enable-shared + # - name: Regenerate autoconf files with container image + # run: make regen-configure + # - name: Build CPython + # run: | + # make -j4 regen-all + # make regen-stdlib-module-names + # - name: Check for changes + # run: | + # git add -u + # changes=$(git status --porcelain) + # # Check for changes in regenerated files + # if test -n "$changes"; then + # echo "Generated files not up to date." + # echo "Perhaps you forgot to run make regen-all or build.bat --regen. ;)" + # echo "configure files must be regenerated with a specific version of autoconf." + # echo "$changes" + # echo "" + # git diff --staged || true + # exit 1 + # fi + # - name: Check exported libpython symbols + # run: make smelly + # - name: Check limited ABI symbols + # run: make check-limited-abi + # - name: Check for unsupported C global variables + # if: github.event_name == 'pull_request' # $GITHUB_EVENT_NAME + # run: make check-c-globals build_win32: name: 'Windows (x86)' @@ -188,12 +188,12 @@ jobs: IncludeUwp: 'true' steps: - uses: actions/checkout@v4 - - name: Build CPython - run: .\PCbuild\build.bat -e -d -p Win32 - - name: Display build info - run: .\python.bat -m test.pythoninfo - - name: Tests - run: .\PCbuild\rt.bat -p Win32 -d -q --fast-ci + # - name: Build CPython + # run: .\PCbuild\build.bat -e -d -p Win32 + # - name: Display build info + # run: .\python.bat -m test.pythoninfo + # - name: Tests + # run: .\PCbuild\rt.bat -p Win32 -d -q --fast-ci build_win_amd64: name: 'Windows (x64)' @@ -207,12 +207,12 @@ jobs: - uses: actions/checkout@v4 - name: Register MSVC problem matcher run: echo "::add-matcher::.github/problem-matchers/msvc.json" - - name: Build CPython - run: .\PCbuild\build.bat -e -d -p x64 - - name: Display build info - run: .\python.bat -m test.pythoninfo - - name: Tests - run: .\PCbuild\rt.bat -p x64 -d -q --fast-ci + # - name: Build CPython + # run: .\PCbuild\build.bat -e -d -p x64 + # - name: Display build info + # run: .\python.bat -m test.pythoninfo + # - name: Tests + # run: .\PCbuild\rt.bat -p x64 -d -q --fast-ci build_win_arm64: name: 'Windows (arm64)' @@ -226,8 +226,8 @@ jobs: - uses: actions/checkout@v4 - name: Register MSVC problem matcher run: echo "::add-matcher::.github/problem-matchers/msvc.json" - - name: Build CPython - run: .\PCbuild\build.bat -e -d -p arm64 + # - name: Build CPython + # run: .\PCbuild\build.bat -e -d -p arm64 build_macos: name: 'macOS' @@ -242,28 +242,28 @@ jobs: PYTHONSTRICTEXTENSIONBUILD: 1 steps: - uses: actions/checkout@v4 - - name: Restore config.cache - uses: actions/cache@v3 - with: - path: config.cache - key: ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }} - - name: Install Homebrew dependencies - run: brew install pkg-config openssl@3.0 xz gdbm tcl-tk - - name: Configure CPython - run: | - GDBM_CFLAGS="-I$(brew --prefix gdbm)/include" \ - GDBM_LIBS="-L$(brew --prefix gdbm)/lib -lgdbm" \ - ./configure \ - --config-cache \ - --with-pydebug \ - --prefix=/opt/python-dev \ - --with-openssl="$(brew --prefix openssl@3.0)" - - name: Build CPython - run: make -j4 - - name: Display build info - run: make pythoninfo - - name: Tests - run: make test + # - name: Restore config.cache + # uses: actions/cache@v3 + # with: + # path: config.cache + # key: ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }} + # - name: Install Homebrew dependencies + # run: brew install pkg-config openssl@3.0 xz gdbm tcl-tk + # - name: Configure CPython + # run: | + # GDBM_CFLAGS="-I$(brew --prefix gdbm)/include" \ + # GDBM_LIBS="-L$(brew --prefix gdbm)/lib -lgdbm" \ + # ./configure \ + # --config-cache \ + # --with-pydebug \ + # --prefix=/opt/python-dev \ + # --with-openssl="$(brew --prefix openssl@3.0)" + # - name: Build CPython + # run: make -j4 + # - name: Display build info + # run: make pythoninfo + # - name: Tests + # run: make test build_ubuntu: name: 'Ubuntu' @@ -276,6 +276,73 @@ jobs: PYTHONSTRICTEXTENSIONBUILD: 1 steps: - uses: actions/checkout@v4 + - name: Register gcc problem matcher + run: echo "::add-matcher::.github/problem-matchers/gcc.json" + - name: Install dependencies + run: sudo ./.github/workflows/posix-deps-apt.sh + # - name: Configure OpenSSL env vars + # run: | + # echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV + # echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV + # echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV + # - name: 'Restore OpenSSL build' + # id: cache-openssl + # uses: actions/cache@v3 + # with: + # path: ./multissl/openssl/${{ env.OPENSSL_VER }} + # key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }} + # - name: Install OpenSSL + # if: steps.cache-openssl.outputs.cache-hit != 'true' + # run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux + # - name: Add ccache to PATH + # run: | + # echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV + # - name: Configure ccache action + # uses: hendrikmuhs/ccache-action@v1.2 + # - name: Setup directory envs for out-of-tree builds + # run: | + # echo "CPYTHON_RO_SRCDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-ro-srcdir)" >> $GITHUB_ENV + # echo "CPYTHON_BUILDDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-builddir)" >> $GITHUB_ENV + # - name: Create directories for read-only out-of-tree builds + # run: mkdir -p $CPYTHON_RO_SRCDIR $CPYTHON_BUILDDIR + # - name: Bind mount sources read-only + # run: sudo mount --bind -o ro $GITHUB_WORKSPACE $CPYTHON_RO_SRCDIR + # - name: Restore config.cache + # uses: actions/cache@v3 + # with: + # path: ${{ env.CPYTHON_BUILDDIR }}/config.cache + # key: ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }} + # - name: Configure CPython out-of-tree + # working-directory: ${{ env.CPYTHON_BUILDDIR }} + # run: | + # ../cpython-ro-srcdir/configure \ + # --config-cache \ + # --with-pydebug \ + # --with-openssl=$OPENSSL_DIR + # - name: Build CPython out-of-tree + # working-directory: ${{ env.CPYTHON_BUILDDIR }} + # run: make -j4 + # - name: Display build info + # working-directory: ${{ env.CPYTHON_BUILDDIR }} + # run: make pythoninfo + # - name: Remount sources writable for tests + # # some tests write to srcdir, lack of pyc files slows down testing + # run: sudo mount $CPYTHON_RO_SRCDIR -oremount,rw + # - name: Tests + # working-directory: ${{ env.CPYTHON_BUILDDIR }} + # run: xvfb-run make test + + build_ubuntu_nogil: + name: 'Ubuntu nogil-build' + runs-on: ubuntu-latest + timeout-minutes: 60 + needs: check_source + if: needs.check_source.outputs.run_tests == 'true' + env: + OPENSSL_VER: 3.0.11 + PYTHONSTRICTEXTENSIONBUILD: 1 + steps: + - uses: actions/checkout@v4 - name: Register gcc problem matcher run: echo "::add-matcher::.github/problem-matchers/gcc.json" - name: Install dependencies @@ -318,19 +385,21 @@ jobs: ../cpython-ro-srcdir/configure \ --config-cache \ --with-pydebug \ - --with-openssl=$OPENSSL_DIR + --with-openssl=$OPENSSL_DIR \ + --disable-gil - name: Build CPython out-of-tree working-directory: ${{ env.CPYTHON_BUILDDIR }} run: make -j4 - name: Display build info working-directory: ${{ env.CPYTHON_BUILDDIR }} run: make pythoninfo - - name: Remount sources writable for tests - # some tests write to srcdir, lack of pyc files slows down testing - run: sudo mount $CPYTHON_RO_SRCDIR -oremount,rw - - name: Tests - working-directory: ${{ env.CPYTHON_BUILDDIR }} - run: xvfb-run make test + # - name: Remount sources writable for tests + # # some tests write to srcdir, lack of pyc files slows down testing + # run: sudo mount $CPYTHON_RO_SRCDIR -oremount,rw + # - name: Tests + # working-directory: ${{ env.CPYTHON_BUILDDIR }} + # run: xvfb-run make test + build_ubuntu_ssltests: name: 'Ubuntu SSL tests with OpenSSL' @@ -354,37 +423,37 @@ jobs: with: path: config.cache key: ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }} - - name: Register gcc problem matcher - run: echo "::add-matcher::.github/problem-matchers/gcc.json" - - name: Install Dependencies - run: sudo ./.github/workflows/posix-deps-apt.sh - - name: Configure OpenSSL env vars - run: | - echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV - echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV - echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV - - name: 'Restore OpenSSL build' - id: cache-openssl - uses: actions/cache@v3 - with: - path: ./multissl/openssl/${{ env.OPENSSL_VER }} - key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }} - - name: Install OpenSSL - if: steps.cache-openssl.outputs.cache-hit != 'true' - run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux - - name: Add ccache to PATH - run: | - echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV - - name: Configure ccache action - uses: hendrikmuhs/ccache-action@v1.2 - - name: Configure CPython - run: ./configure --config-cache --with-pydebug --with-openssl=$OPENSSL_DIR - - name: Build CPython - run: make -j4 - - name: Display build info - run: make pythoninfo - - name: SSL tests - run: ./python Lib/test/ssltests.py + # - name: Register gcc problem matcher + # run: echo "::add-matcher::.github/problem-matchers/gcc.json" + # - name: Install Dependencies + # run: sudo ./.github/workflows/posix-deps-apt.sh + # - name: Configure OpenSSL env vars + # run: | + # echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV + # echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV + # echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV + # - name: 'Restore OpenSSL build' + # id: cache-openssl + # uses: actions/cache@v3 + # with: + # path: ./multissl/openssl/${{ env.OPENSSL_VER }} + # key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }} + # - name: Install OpenSSL + # if: steps.cache-openssl.outputs.cache-hit != 'true' + # run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux + # - name: Add ccache to PATH + # run: | + # echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV + # - name: Configure ccache action + # uses: hendrikmuhs/ccache-action@v1.2 + # - name: Configure CPython + # run: ./configure --config-cache --with-pydebug --with-openssl=$OPENSSL_DIR + # - name: Build CPython + # run: make -j4 + # - name: Display build info + # run: make pythoninfo + # - name: SSL tests + # run: ./python Lib/test/ssltests.py test_hypothesis: name: "Hypothesis tests on Ubuntu" @@ -399,100 +468,100 @@ jobs: - uses: actions/checkout@v4 - name: Register gcc problem matcher run: echo "::add-matcher::.github/problem-matchers/gcc.json" - - name: Install Dependencies - run: sudo ./.github/workflows/posix-deps-apt.sh - - name: Configure OpenSSL env vars - run: | - echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV - echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV - echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV - - name: 'Restore OpenSSL build' - id: cache-openssl - uses: actions/cache@v3 - with: - path: ./multissl/openssl/${{ env.OPENSSL_VER }} - key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }} - - name: Install OpenSSL - if: steps.cache-openssl.outputs.cache-hit != 'true' - run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux - - name: Add ccache to PATH - run: | - echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV - - name: Configure ccache action - uses: hendrikmuhs/ccache-action@v1.2 - - name: Setup directory envs for out-of-tree builds - run: | - echo "CPYTHON_RO_SRCDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-ro-srcdir)" >> $GITHUB_ENV - echo "CPYTHON_BUILDDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-builddir)" >> $GITHUB_ENV - - name: Create directories for read-only out-of-tree builds - run: mkdir -p $CPYTHON_RO_SRCDIR $CPYTHON_BUILDDIR - - name: Bind mount sources read-only - run: sudo mount --bind -o ro $GITHUB_WORKSPACE $CPYTHON_RO_SRCDIR - - name: Restore config.cache - uses: actions/cache@v3 - with: - path: ${{ env.CPYTHON_BUILDDIR }}/config.cache - key: ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }} - - name: Configure CPython out-of-tree - working-directory: ${{ env.CPYTHON_BUILDDIR }} - run: | - ../cpython-ro-srcdir/configure \ - --config-cache \ - --with-pydebug \ - --with-openssl=$OPENSSL_DIR - - name: Build CPython out-of-tree - working-directory: ${{ env.CPYTHON_BUILDDIR }} - run: make -j4 - - name: Display build info - working-directory: ${{ env.CPYTHON_BUILDDIR }} - run: make pythoninfo - - name: Remount sources writable for tests - # some tests write to srcdir, lack of pyc files slows down testing - run: sudo mount $CPYTHON_RO_SRCDIR -oremount,rw - - name: Setup directory envs for out-of-tree builds - run: | - echo "CPYTHON_BUILDDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-builddir)" >> $GITHUB_ENV - - name: "Create hypothesis venv" - working-directory: ${{ env.CPYTHON_BUILDDIR }} - run: | - VENV_LOC=$(realpath -m .)/hypovenv - VENV_PYTHON=$VENV_LOC/bin/python - echo "HYPOVENV=${VENV_LOC}" >> $GITHUB_ENV - echo "VENV_PYTHON=${VENV_PYTHON}" >> $GITHUB_ENV - ./python -m venv $VENV_LOC && $VENV_PYTHON -m pip install -r ${GITHUB_WORKSPACE}/Tools/requirements-hypothesis.txt - - name: 'Restore Hypothesis database' - id: cache-hypothesis-database - uses: actions/cache@v3 - with: - path: ./hypothesis - key: hypothesis-database-${{ github.head_ref || github.run_id }} - restore-keys: | - - hypothesis-database- - - name: "Run tests" - working-directory: ${{ env.CPYTHON_BUILDDIR }} - run: | - # Most of the excluded tests are slow test suites with no property tests - # - # (GH-104097) test_sysconfig is skipped because it has tests that are - # failing when executed from inside a virtual environment. - ${{ env.VENV_PYTHON }} -m test \ - -W \ - -o \ - -j4 \ - -x test_asyncio \ - -x test_multiprocessing_fork \ - -x test_multiprocessing_forkserver \ - -x test_multiprocessing_spawn \ - -x test_concurrent_futures \ - -x test_socket \ - -x test_subprocess \ - -x test_signal \ - -x test_sysconfig - - uses: actions/upload-artifact@v3 - if: always() - with: - name: hypothesis-example-db - path: .hypothesis/examples/ + # - name: Install Dependencies + # run: sudo ./.github/workflows/posix-deps-apt.sh + # - name: Configure OpenSSL env vars + # run: | + # echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV + # echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV + # echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV + # - name: 'Restore OpenSSL build' + # id: cache-openssl + # uses: actions/cache@v3 + # with: + # path: ./multissl/openssl/${{ env.OPENSSL_VER }} + # key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }} + # - name: Install OpenSSL + # if: steps.cache-openssl.outputs.cache-hit != 'true' + # run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux + # - name: Add ccache to PATH + # run: | + # echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV + # - name: Configure ccache action + # uses: hendrikmuhs/ccache-action@v1.2 + # - name: Setup directory envs for out-of-tree builds + # run: | + # echo "CPYTHON_RO_SRCDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-ro-srcdir)" >> $GITHUB_ENV + # echo "CPYTHON_BUILDDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-builddir)" >> $GITHUB_ENV + # - name: Create directories for read-only out-of-tree builds + # run: mkdir -p $CPYTHON_RO_SRCDIR $CPYTHON_BUILDDIR + # - name: Bind mount sources read-only + # run: sudo mount --bind -o ro $GITHUB_WORKSPACE $CPYTHON_RO_SRCDIR + # - name: Restore config.cache + # uses: actions/cache@v3 + # with: + # path: ${{ env.CPYTHON_BUILDDIR }}/config.cache + # key: ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }} + # - name: Configure CPython out-of-tree + # working-directory: ${{ env.CPYTHON_BUILDDIR }} + # run: | + # ../cpython-ro-srcdir/configure \ + # --config-cache \ + # --with-pydebug \ + # --with-openssl=$OPENSSL_DIR + # - name: Build CPython out-of-tree + # working-directory: ${{ env.CPYTHON_BUILDDIR }} + # run: make -j4 + # - name: Display build info + # working-directory: ${{ env.CPYTHON_BUILDDIR }} + # run: make pythoninfo + # - name: Remount sources writable for tests + # # some tests write to srcdir, lack of pyc files slows down testing + # run: sudo mount $CPYTHON_RO_SRCDIR -oremount,rw + # - name: Setup directory envs for out-of-tree builds + # run: | + # echo "CPYTHON_BUILDDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-builddir)" >> $GITHUB_ENV + # - name: "Create hypothesis venv" + # working-directory: ${{ env.CPYTHON_BUILDDIR }} + # run: | + # VENV_LOC=$(realpath -m .)/hypovenv + # VENV_PYTHON=$VENV_LOC/bin/python + # echo "HYPOVENV=${VENV_LOC}" >> $GITHUB_ENV + # echo "VENV_PYTHON=${VENV_PYTHON}" >> $GITHUB_ENV + # ./python -m venv $VENV_LOC && $VENV_PYTHON -m pip install -r ${GITHUB_WORKSPACE}/Tools/requirements-hypothesis.txt + # - name: 'Restore Hypothesis database' + # id: cache-hypothesis-database + # uses: actions/cache@v3 + # with: + # path: ./hypothesis + # key: hypothesis-database-${{ github.head_ref || github.run_id }} + # restore-keys: | + # - hypothesis-database- + # - name: "Run tests" + # working-directory: ${{ env.CPYTHON_BUILDDIR }} + # run: | + # # Most of the excluded tests are slow test suites with no property tests + # # + # # (GH-104097) test_sysconfig is skipped because it has tests that are + # # failing when executed from inside a virtual environment. + # ${{ env.VENV_PYTHON }} -m test \ + # -W \ + # -o \ + # -j4 \ + # -x test_asyncio \ + # -x test_multiprocessing_fork \ + # -x test_multiprocessing_forkserver \ + # -x test_multiprocessing_spawn \ + # -x test_concurrent_futures \ + # -x test_socket \ + # -x test_subprocess \ + # -x test_signal \ + # -x test_sysconfig + # - uses: actions/upload-artifact@v3 + # if: always() + # with: + # name: hypothesis-example-db + # path: .hypothesis/examples/ build_asan: @@ -512,41 +581,41 @@ jobs: with: path: config.cache key: ${{ github.job }}-${{ runner.os }}-${{ needs.check_source.outputs.config_hash }} - - name: Register gcc problem matcher - run: echo "::add-matcher::.github/problem-matchers/gcc.json" - - name: Install Dependencies - run: sudo ./.github/workflows/posix-deps-apt.sh - - name: Set up GCC-10 for ASAN - uses: egor-tensin/setup-gcc@v1 - with: - version: 10 - - name: Configure OpenSSL env vars - run: | - echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV - echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV - echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV - - name: 'Restore OpenSSL build' - id: cache-openssl - uses: actions/cache@v3 - with: - path: ./multissl/openssl/${{ env.OPENSSL_VER }} - key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }} - - name: Install OpenSSL - if: steps.cache-openssl.outputs.cache-hit != 'true' - run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux - - name: Add ccache to PATH - run: | - echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV - - name: Configure ccache action - uses: hendrikmuhs/ccache-action@v1.2 - - name: Configure CPython - run: ./configure --config-cache --with-address-sanitizer --without-pymalloc - - name: Build CPython - run: make -j4 - - name: Display build info - run: make pythoninfo - - name: Tests - run: xvfb-run make test + # - name: Register gcc problem matcher + # run: echo "::add-matcher::.github/problem-matchers/gcc.json" + # - name: Install Dependencies + # run: sudo ./.github/workflows/posix-deps-apt.sh + # - name: Set up GCC-10 for ASAN + # uses: egor-tensin/setup-gcc@v1 + # with: + # version: 10 + # - name: Configure OpenSSL env vars + # run: | + # echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV + # echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV + # echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV + # - name: 'Restore OpenSSL build' + # id: cache-openssl + # uses: actions/cache@v3 + # with: + # path: ./multissl/openssl/${{ env.OPENSSL_VER }} + # key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }} + # - name: Install OpenSSL + # if: steps.cache-openssl.outputs.cache-hit != 'true' + # run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux + # - name: Add ccache to PATH + # run: | + # echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV + # - name: Configure ccache action + # uses: hendrikmuhs/ccache-action@v1.2 + # - name: Configure CPython + # run: ./configure --config-cache --with-address-sanitizer --without-pymalloc + # - name: Build CPython + # run: make -j4 + # - name: Display build info + # run: make pythoninfo + # - name: Tests + # run: xvfb-run make test # CIFuzz job based on https://google.github.io/oss-fuzz/getting-started/continuous-integration/ cifuzz: @@ -601,6 +670,7 @@ jobs: - build_win_arm64 - build_macos - build_ubuntu + - build_ubuntu_nogil # Leave disabled until considered required - build_ubuntu_ssltests - test_hypothesis - build_asan @@ -614,6 +684,7 @@ jobs: with: allowed-failures: >- build_macos, + build_ubuntu_nogil, build_ubuntu_ssltests, build_win32, build_win_arm64, @@ -636,6 +707,7 @@ jobs: build_win_arm64, build_macos, build_ubuntu, + build_ubuntu_nogil, build_ubuntu_ssltests, build_asan, '