[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