--- /dev/null
+name: "ABI Breakage"\r
+on:\r
+ push:\r
+ branches: [ v1.x ]\r
+ pull_request:\r
+\r
+jobs:\r
+ test_abidiff:\r
+ name: abidiff\r
+ runs-on: ubuntu-latest\r
+ steps:\r
+ - uses: lukka/get-cmake@latest\r
+\r
+ - name: Checkout libebml\r
+ uses: actions/checkout@v3\r
+ with: \r
+ repository: Matroska-Org/libebml\r
+ path: libebml\r
+ ref: v1.x\r
+\r
+ - name: Configure libebml\r
+ run: cmake -S libebml -B libebml/_build -DBUILD_SHARED_LIBS=ON\r
+\r
+ - name: Build libebml\r
+ run: cmake --build libebml/_build --parallel\r
+\r
+ - name: Install libebml\r
+ run: cmake --install libebml/_build --prefix ${GITHUB_WORKSPACE}/_built\r
+\r
+ - name: Get pushed code\r
+ uses: actions/checkout@v3\r
+ with: \r
+ path: libmatroska-new\r
+ \r
+ - name: Configure CMake \r
+ run: cmake -S libmatroska-new -B _build -DBUILD_SHARED_LIBS=ON -DEBML_DIR="${GITHUB_WORKSPACE}/_built/lib/cmake/EBML"\r
+\r
+ - name: Build\r
+ run: cmake --build _build --parallel\r
+\r
+ - name: Install\r
+ run: cmake --install _build --prefix ${GITHUB_WORKSPACE}/_built\r
+\r
+ - name: Get v1.x code\r
+ uses: actions/checkout@v3\r
+ with: \r
+ path: libmatroska-1\r
+ ref: v1.x\r
+ \r
+ - name: Configure v1.x\r
+ run: cmake -S libmatroska-1 -B _build_1 -DBUILD_SHARED_LIBS=ON -DEBML_DIR="${GITHUB_WORKSPACE}/_built/lib/cmake/EBML"\r
+\r
+ - name: Build v1.x\r
+ run: cmake --build _build_1 --parallel\r
+\r
+ - name: Install v1.x\r
+ run: cmake --install _build_1 --prefix ${GITHUB_WORKSPACE}/_built_1\r
+\r
+ - name: Get abidiff\r
+ run: |\r
+ sudo apt update\r
+ sudo apt install abigail-tools\r
+\r
+ - name: Check ABI differences\r
+ run: abidiff --no-added-syms ${GITHUB_WORKSPACE}/_built/lib/libmatroska.so ${GITHUB_WORKSPACE}/_built_1/lib/libmatroska.so\r