diff options
Diffstat (limited to '.github/workflows/build-abi.yml')
-rw-r--r-- | .github/workflows/build-abi.yml | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/.github/workflows/build-abi.yml b/.github/workflows/build-abi.yml new file mode 100644 index 0000000..4aed327 --- /dev/null +++ b/.github/workflows/build-abi.yml @@ -0,0 +1,44 @@ +name: Build & ABI compatibility + +# Controls when the action will run. Triggers the workflow on push or pull request +# events but only for the main branch +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-22.04 + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + # Installs the build dependencies + # Always include phased updates (LP: #1979244) + - name: Install build depends + run: | + echo "APT::Get::Always-Include-Phased-Updates \"true\";" | sudo tee /etc/apt/apt.conf.d/90phased-updates + sudo sed -i '/deb-src/s/^# //' /etc/apt/sources.list + sudo apt update + #sudo apt install lcov python3-coverage curl + sudo apt install abigail-tools meson + sudo apt build-dep netplan.io + + # Runs the build + # TODO: move to meson build (on Jammy), once available + - name: Run build + run: | + meson setup _build --prefix=/usr + meson compile -C _build + + # Abigail ABI checker + - name: Check ABI compatibility + run: | + abidiff abi-compat/jammy_0.105.xml _build/src/libnetplan.so.0.0 --headers-dir2 include/ --header-file2 src/abi.h --suppressions abi-compat/suppressions.abignore --no-added-syms |