[3.11] Add CI step to check changes in the exported ABI (#92442)

This commit is contained in:
Pablo Galindo Salgado 2022-05-08 04:32:17 +01:00 committed by GitHub
parent 21282da020
commit e89c01eac7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 16596 additions and 0 deletions

View file

@ -56,6 +56,28 @@ jobs:
git diff --name-only origin/$GITHUB_BASE_REF.. | grep -qE '(ssl|hashlib|hmac|^.github)' && echo '::set-output name=run_ssl_tests::true' || true git diff --name-only origin/$GITHUB_BASE_REF.. | grep -qE '(ssl|hashlib|hmac|^.github)' && echo '::set-output name=run_ssl_tests::true' || true
fi fi
check_abi:
name: 'Check if the ABI has changed'
runs-on: ubuntu-20.04
needs: check_source
if: needs.check_source.outputs.run_tests == 'true'
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- name: Install Dependencies
run: |
sudo ./.github/workflows/posix-deps-apt.sh
sudo apt-get install -yq abigail-tools
- name: Build CPython
env:
CFLAGS: -g3 -O0
run: |
# Build Python with the libpython dynamic library
./configure --enable-shared
make -j4
- name: Check for changes in the ABI
run: make check-abidump
check_generated_files: check_generated_files:
name: 'Check if generated files are up to date' name: 'Check if generated files are up to date'
runs-on: ubuntu-latest runs-on: ubuntu-latest

16566
Doc/data/python3.11.abi Normal file

File diff suppressed because it is too large Load diff

View file

@ -1198,6 +1198,14 @@ regen-global-objects: $(srcdir)/Tools/scripts/generate_global_objects.py
############################################################################ ############################################################################
# ABI # ABI
regen-abidump: all
@$(MKDIR_P) $(srcdir)/Doc/data/
abidw "libpython$(LDVERSION).so" --no-architecture --out-file $(srcdir)/Doc/data/python$(LDVERSION).abi.new
@$(UPDATE_FILE) $(srcdir)/Doc/data/python$(LDVERSION).abi $(srcdir)/Doc/data/python$(LDVERSION).abi.new
check-abidump: all
abidiff $(srcdir)/Doc/data/python$(LDVERSION).abi "libpython$(LDVERSION).so" --drop-private-types --no-architecture --no-added-syms
regen-limited-abi: all regen-limited-abi: all
$(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/stable_abi.py --generate-all $(srcdir)/Misc/stable_abi.toml $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/stable_abi.py --generate-all $(srcdir)/Misc/stable_abi.toml