[dm-devel] [PATCH 2/3] multipath-tools: add github workflow to save and check ABI
mwilck at suse.com
mwilck at suse.com
Fri Nov 12 21:05:50 UTC 2021
From: Martin Wilck <mwilck at suse.com>
This adds a workflow that saves the ABI of libmultipath and the
other libraries, and optionally tests it against a known-good state,
which is taken from the configurable ABI_BRANCH. If the ABI differs,
the workflow fails, and the abidiff output is saved in GH actions
as artifact "abi-test".
To configure the reference branch, set the repository secret ABI_BRANCH to the
name of the branch that contains the ABI reference. The default is "master".
Signed-off-by: Martin Wilck <mwilck at suse.com>
---
.github/workflows/abi.yaml | 54 ++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
create mode 100644 .github/workflows/abi.yaml
diff --git a/.github/workflows/abi.yaml b/.github/workflows/abi.yaml
new file mode 100644
index 0000000..53f10d4
--- /dev/null
+++ b/.github/workflows/abi.yaml
@@ -0,0 +1,54 @@
+name: check-abi
+on:
+ - push
+ - pull_request
+env:
+ ABI_BRANCH: ${{ secrets.ABI_BRANCH }}
+
+jobs:
+ save-and-test-ABI:
+ runs-on: ubuntu-20.04
+ steps:
+ - name: set ABI branch
+ if: ${{ env.ABI_BRANCH == '' }}
+ run: echo "ABI_BRANCH=master" >> $GITHUB_ENV
+ - name: checkout
+ uses: actions/checkout at v2
+ - name: get reference ABI
+ id: reference
+ continue-on-error: true
+ uses: dawidd6/action-download-artifact at v2
+ with:
+ workflow: abi.yaml
+ branch: ${{ env.ABI_BRANCH }}
+ name: abi
+ path: reference-abi
+ - name: update
+ run: sudo apt-get update
+ - name: dependencies
+ run: >
+ sudo apt-get install --yes gcc
+ gcc make pkg-config abigail-tools
+ libdevmapper-dev libreadline-dev libaio-dev libsystemd-dev
+ libudev-dev libjson-c-dev liburcu-dev libcmocka-dev
+ - name: create ABI
+ run: make -O -j$(grep -c ^processor /proc/cpuinfo) abi.tar.gz
+ - name: save ABI
+ uses: actions/upload-artifact at v1
+ with:
+ name: abi
+ path: abi
+ - name: compare ABI against reference
+ id: compare
+ continue-on-error: true
+ if: ${{ steps.reference.outcome == 'success' }}
+ run: make abi-test
+ - name: save differences
+ if: ${{ steps.compare.outcome == 'failure' }}
+ uses: actions/upload-artifact at v1
+ with:
+ name: abi-test
+ path: abi-test
+ - name: fail
+ if: ${{ steps.compare.outcome == 'failure' }}
+ run: false
--
2.33.1
More information about the dm-devel
mailing list