]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Enable ABI checks for the checkstyle workflow
authorBrian Behlendorf <behlendorf1@llnl.gov>
Sun, 6 Dec 2020 17:50:47 +0000 (09:50 -0800)
committerGitHub <noreply@github.com>
Sun, 6 Dec 2020 17:50:47 +0000 (09:50 -0800)
Extend the CI checkstyle workflow to perform the library ABI
checks in the master branch.  The intent is not to prevent any
ABI changes but to detect them immediately so when they're
made it's done intentionally.

When the changing the ABI the `make storeabi` target can be
used to generate a new .abi file which can be included with
the commit.  This depends on the libabigail utility which is
available from the majority of distribution package managers.

Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #11287

.github/PULL_REQUEST_TEMPLATE.md
.github/workflows/checkstyle.yaml

index ef1f595b2d833e93f06052902b4f3375ed6e95c8..465ee182c497cac5c4d62ccac3fef72facfb112e 100644 (file)
@@ -28,6 +28,7 @@ https://openzfs.github.io/openzfs-docs/Developer%20Resources/Buildbot%20Options.
 - [ ] Performance enhancement (non-breaking change which improves efficiency)
 - [ ] Code cleanup (non-breaking change which makes code smaller or more readable)
 - [ ] Breaking change (fix or feature that would cause existing functionality to change)
+- [ ] Library ABI change (libzfs, libzfs\_core, libnvpair, libuutil and libzfsbootenv)
 - [ ] Documentation (a change to man pages or other documentation)
 
 ### Checklist:
index 06b3a1226b459d6476c43aacc226670ae12d7a87..1707f5bb21dbfc345997485763af1f13bd2d0915 100644 (file)
@@ -18,15 +18,19 @@ jobs:
         sudo apt-get install --yes -qq zlib1g-dev uuid-dev libattr1-dev libblkid-dev libselinux-dev libudev-dev libssl-dev python-dev python-setuptools python-cffi python3 python3-dev python3-setuptools python3-cffi
         # packages for tests
         sudo apt-get install --yes -qq parted lsscsi ksh attr acl nfs-kernel-server fio
-        sudo apt-get install --yes -qq mandoc cppcheck pax-utils devscripts
+        sudo apt-get install --yes -qq mandoc cppcheck pax-utils devscripts abigail-tools
         sudo -E pip --quiet install flake8
     - name: Prepare
       run: |
         sh ./autogen.sh
         ./configure
+        make -j$(nproc)
     - name: Checkstyle
       run: |
         make checkstyle
     - name: Lint
       run: |
         make lint
+    - name: CheckABI
+      run: |
+        make checkabi