summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2020-12-06 09:50:47 -0800
committerGitHub <[email protected]>2020-12-06 09:50:47 -0800
commiteed2bfe06a60d42b0035edb4b86590eb7edd331d (patch)
treebcd30f30437e47d6f21320b969c3e135f0e11302
parent0484e8722f3f511f8f8cc657e6d9f54c58b6edff (diff)
Enable ABI checks for the checkstyle workflow
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 <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #11287
-rw-r--r--.github/PULL_REQUEST_TEMPLATE.md1
-rw-r--r--.github/workflows/checkstyle.yaml6
2 files changed, 6 insertions, 1 deletions
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index ef1f595b2..465ee182c 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -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:
diff --git a/.github/workflows/checkstyle.yaml b/.github/workflows/checkstyle.yaml
index 06b3a1226..1707f5bb2 100644
--- a/.github/workflows/checkstyle.yaml
+++ b/.github/workflows/checkstyle.yaml
@@ -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