summaryrefslogtreecommitdiff
path: root/.github/workflows/build-abi.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build-abi.yml')
-rw-r--r--.github/workflows/build-abi.yml44
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