[dm-devel] [PATCH 2/3] multipath-tools: add github workflow to save and check ABI
Benjamin Marzinski
bmarzins at redhat.com
Wed Nov 17 18:20:30 UTC 2021
On Fri, Nov 12, 2021 at 10:05:50PM +0100, mwilck at suse.com wrote:
> 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>
Reviewed-by: Benjamin Marzinski <bmarzins at redhat.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