summaryrefslogtreecommitdiffstats
path: root/.github/workflows/abi-checker.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/abi-checker.yml')
-rw-r--r--.github/workflows/abi-checker.yml102
1 files changed, 102 insertions, 0 deletions
diff --git a/.github/workflows/abi-checker.yml b/.github/workflows/abi-checker.yml
new file mode 100644
index 0000000..5506f44
--- /dev/null
+++ b/.github/workflows/abi-checker.yml
@@ -0,0 +1,102 @@
+name: abi-checker
+on:
+ workflow_dispatch:
+ branches: [ master, stable* ]
+ inputs:
+ API_BASE_REF:
+ description: 'Base revision for ABI compatibility check'
+ required: true
+ default: '3.0.0'
+ pull_request_target:
+ branches: [ master, stable* ]
+ schedule:
+ - cron: '30 4 * * SUN'
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ name: "Run ABI checker on ubuntu-latest"
+ steps:
+ - name: "Check out pull request"
+ if: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event_name == 'pull_request_target' }}
+ uses: suzuki-shunsuke/get-pr-action@v0.1.0
+ id: pr
+
+ - name: "Check out source"
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ ref: ${{steps.pr.outputs.merge_commit_sha}}
+
+ - name: "Prepare environment"
+ run: |
+ sudo apt-get update -q -y
+ sudo apt-get install -q -y \
+ libxrandr-dev \
+ libxinerama-dev \
+ libusb-1.0-0-dev \
+ xserver-xorg-dev \
+ libswscale-dev \
+ libswresample-dev \
+ libavutil-dev \
+ libavcodec-dev \
+ libcups2-dev \
+ libpulse-dev \
+ libasound2-dev \
+ libpcsclite-dev \
+ xsltproc \
+ libxcb-cursor-dev \
+ libxcursor-dev \
+ libcairo2-dev \
+ libfaad-dev \
+ libjpeg-dev \
+ libgsm1-dev \
+ ninja-build \
+ libxfixes-dev \
+ libxkbcommon-dev \
+ libwayland-dev \
+ libpam0g-dev \
+ libxdamage-dev \
+ libxcb-damage0-dev \
+ libxtst-dev \
+ libfuse3-dev \
+ libsystemd-dev \
+ libcairo2-dev \
+ libsoxr-dev \
+ libsdl2-dev \
+ docbook-xsl \
+ libkrb5-dev \
+ libcjson-dev \
+ libpkcs11-helper1-dev \
+ libsdl2-ttf-dev \
+ libwebkit2gtk-4.0-dev \
+ libopus-dev \
+ libwebp-dev \
+ libpng-dev \
+ libjpeg-dev \
+ liburiparser-dev \
+ cmake \
+ clang \
+ abigail-tools \
+ pylint \
+ curl
+
+ - name: "Prepare configuration"
+ run: |
+ mkdir -p checker
+ cp ci/cmake-preloads/config-abi.txt checker/
+ cp scripts/abi-suppr.txt checker/
+ curl https://gist.githubusercontent.com/akallabeth/aa35caed0d39241fa17c3dc8a0539ea3/raw/ef12f8c720ac6be51aa1878710e2502b1b39cf4c/check-abi -o checker/check-abi
+ chmod +x checker/check-abi
+ echo "GITHUB_BASE_REF=$GITHUB_BASE_REF"
+ echo "GITHUB_HEAD_REF=$GITHUB_HEAD_REF"
+ echo "API_BASE_REF=${{ inputs.API_BASE_REF || '3.0.0' }}"
+ echo "HEAD=$(git rev-parse HEAD)"
+ echo "remotes=$(git remote -v)"
+
+ - name: "Run ABI check..."
+ env:
+ BASE_REF: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event_name == 'pull_request_target' && github.event.pull_request.base.sha || github.event_name == 'workflow_dispatch' && inputs.API_BASE_REF || '3.0.0' }}
+ run: |
+ echo "BASE_REF=$BASE_REF"
+ ./checker/check-abi -s checker/abi-suppr.txt --parameters="-Cchecker/config-abi.txt" $BASE_REF $(git rev-parse HEAD)