From: Martin Wilck <mwilck@xxxxxxxx> 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@xxxxxxxx> --- .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@v2 + - name: get reference ABI + id: reference + continue-on-error: true + uses: dawidd6/action-download-artifact@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@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@v1 + with: + name: abi-test + path: abi-test + - name: fail + if: ${{ steps.compare.outcome == 'failure' }} + run: false -- 2.33.1 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://listman.redhat.com/mailman/listinfo/dm-devel