SAN_LOG_OPTION: log_path=${{ github.workspace }}/san_log
SUPPRESSIONS_SUFFIX: >-
${{
- fromJSON(inputs.free-threading)
+ inputs.free-threading
&& '_free_threading'
|| ''
}}
}}
--with-pydebug
${{ inputs.sanitizer == 'TSan' && '--with-openssl="$OPENSSL_DIR" --with-openssl-rpath=auto' || '' }}
- ${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}
+ ${{ inputs.free-threading && '--disable-gil' || '' }}
- name: Build CPython
run: make -j4
- name: Display build info
- name: Parallel tests
if: >-
inputs.sanitizer == 'TSan'
- && fromJSON(inputs.free-threading)
+ && inputs.free-threading
run: ./python -m test --tsan-parallel --parallel-threads=4 -j4 -W --timeout=600 --slowest
- name: Display logs
if: always()
with:
name: >-
${{ inputs.sanitizer }}-logs-${{
- fromJSON(inputs.free-threading)
+ inputs.free-threading
&& 'free-threading'
|| 'default'
}}
type: boolean
default: false
os:
- description: OS to run the job
- required: true
- type: string
+ description: OS to run the job
+ required: true
+ type: string
test-opts:
- description: Extra options to pass to the test runner via TESTOPTS
- required: false
- type: string
- default: ''
+ description: Extra options to pass to the test runner via TESTOPTS
+ required: false
+ type: string
+ default: ''
permissions:
contents: read
- name: Install dependencies
run: sudo ./.github/workflows/posix-deps-apt.sh
- name: Install Clang and BOLT
- if: ${{ fromJSON(inputs.bolt-optimizations) }}
+ if: inputs.bolt-optimizations
run: |
# On ubuntu-26.04 image, LLVM is LLVM-21 by default
sudo apt-get install --no-install-recommends bolt-21
--enable-slower-safety
--enable-safety
--with-openssl="$OPENSSL_DIR"
- ${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}
- ${{ fromJSON(inputs.bolt-optimizations) && '--enable-bolt' || '' }}
+ ${{ inputs.free-threading && '--disable-gil' || '' }}
+ ${{ inputs.bolt-optimizations && '--enable-bolt' || '' }}
- name: Build CPython out-of-tree
- if: ${{ inputs.free-threading }}
+ if: inputs.free-threading
working-directory: ${{ env.CPYTHON_BUILDDIR }}
run: make -j
- name: Build CPython out-of-tree (for compiler warning check)
-e -v
${{ inputs.interpreter == 'switch-case' && '-d' || '--tail-call-interp -c Release' }}
-p "${ARCH}"
- ${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}
+ ${{ inputs.free-threading && '--disable-gil' || '' }}
shell: bash
- name: Display build info
run: .\\python.bat -m test.pythoninfo
-p "${ARCH}"
-q --fast-ci
${{ inputs.interpreter == 'switch-case' && '-d' || '' }}
- ${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}
+ ${{ inputs.free-threading && '--disable-gil' || '' }}
shell: bash