abidiff.yaml 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. # SPDX-FileCopyrightText: 2025 Andrea Pappacoda <[email protected]>
  2. # SPDX-License-Identifier: MIT
  3. name: abidiff
  4. on: [push, pull_request]
  5. concurrency:
  6. group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
  7. cancel-in-progress: true
  8. defaults:
  9. run:
  10. shell: sh
  11. jobs:
  12. abi:
  13. runs-on: ubuntu-latest
  14. if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
  15. container:
  16. image: debian:testing
  17. steps:
  18. - name: Install dependencies
  19. run: apt -y --update install --no-install-recommends
  20. abigail-tools
  21. ca-certificates
  22. g++
  23. git
  24. libbrotli-dev
  25. libssl-dev
  26. meson
  27. pkg-config
  28. python3
  29. zlib1g-dev
  30. - uses: actions/checkout@v4
  31. with:
  32. path: current
  33. - uses: actions/checkout@v4
  34. with:
  35. path: previous
  36. fetch-depth: 0
  37. - name: Checkout previous
  38. working-directory: previous
  39. run: |
  40. git switch master
  41. git describe --tags --abbrev=0 master | xargs git checkout
  42. - name: Build current
  43. working-directory: current
  44. run: |
  45. meson setup --buildtype=debug -Dcpp-httplib_compile=true build
  46. ninja -C build
  47. - name: Build previous
  48. working-directory: previous
  49. run: |
  50. meson setup --buildtype=debug -Dcpp-httplib_compile=true build
  51. ninja -C build
  52. - name: Run abidiff
  53. run: abidiff
  54. --headers-dir1 previous/build
  55. --headers-dir2 current/build
  56. previous/build/libcpp-httplib.so
  57. current/build/libcpp-httplib.so