On Fri, Nov 12, 2021 at 10:05:50PM +0100, mwilck@xxxxxxxx wrote: > 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> Reviewed-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx> > --- > .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