This enables the libclang python binding test to check the oldest version of Python supported in addition to the normal python version. It is important to check this for issue #76664, since many new mainstream python type annotation features and best practices are not compatible with older versions of python. Additionally, frustration around ever increasing platform dependencies and versions has been raised. This will help ensure that python maintains reasonable backwards compatibility. Adding this additional build step will increase the run time, but this should always be minimal, since the additional libclang compilation should see 100% cache hit rate. Issue #76664. Fixes #76601.
45 lines
1.3 KiB
YAML
45 lines
1.3 KiB
YAML
name: Libclang Python Binding Tests
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
paths:
|
|
- 'clang/bindings/python/**'
|
|
- 'clang/tools/libclang/**'
|
|
- 'clang/CMakeList.txt'
|
|
- '.github/workflows/libclang-python-tests.yml'
|
|
- '.github/workflows/llvm-project-tests.yml'
|
|
pull_request:
|
|
paths:
|
|
- 'clang/bindings/python/**'
|
|
- 'clang/tools/libclang/**'
|
|
- 'clang/CMakeList.txt'
|
|
- '.github/workflows/libclang-python-tests.yml'
|
|
- '.github/workflows/llvm-project-tests.yml'
|
|
|
|
concurrency:
|
|
# Skip intermediate builds: always.
|
|
# Cancel intermediate builds: only if it is a pull request build.
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
|
|
|
|
jobs:
|
|
check-clang-python:
|
|
# Build libclang and then run the libclang Python binding's unit tests.
|
|
name: Build and run Python unit tests
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python-version: ["3.7", "3.11"]
|
|
uses: ./.github/workflows/llvm-project-tests.yml
|
|
with:
|
|
build_target: check-clang-python
|
|
projects: clang
|
|
# There is an issue running on "windows-2019".
|
|
# See https://github.com/llvm/llvm-project/issues/76601#issuecomment-1873049082.
|
|
os_list: '["ubuntu-latest"]'
|
|
python_version: ${{ matrix.python-version }}
|