1name: Autotools distcheck and ABI check 2 3on: 4 push: 5 branches: 6 - main 7 - master 8 pull_request: 9 10jobs: 11 distcheck: 12 runs-on: ubuntu-22.04 13 steps: 14 - uses: actions/checkout@v3 15 16 - uses: actions/checkout@v3 17 with: 18 repository: ietf-wg-cellar/flac-test-files 19 path: ./test-files 20 21 - name: Install Linux dependencies 22 run: | 23 sudo apt-get update 24 sudo apt-get install -y libtool-bin libogg-dev doxygen libxml2-utils w3c-sgml-lib pandoc abi-compliance-checker 25 26 - name: Build with Autotools 27 run: | 28 ./autogen.sh 29 ./configure 30 31 - name: Build and check source package 32 run: make distcheck 33 34 - name: Check binary compatibility 35 run: | 36 make 37 unxz --keep test/abi/abi-libFLAC-1.4.0.dump.xz 38 unxz --keep test/abi/abi-libFLAC++-1.4.0.dump.xz 39 abi-compliance-checker -l flac -old test/abi/abi-libFLAC-1.4.0.dump -new test/abi/abi-descriptor-libFLAC-1.4.3.xml 40 abi-compliance-checker -l flac++ -old test/abi/abi-libFLAC++-1.4.0.dump -new test/abi/abi-descriptor-libFLAC++-1.4.3.xml 41 42 - name: Check with flac test files 43 run: ./src/flac/flac -t test-files/subset/*.flac test-files/uncommon/0[5-9]*.flac test-files/uncommon/10*.flac 44 45 - name: Upload ABI compliance reports 46 uses: actions/upload-artifact@v3 47 with: 48 name: flac-${{ github.sha }}-${{ github.run_id }}-compat 49 path: | 50 ./compat_reports 51 52 - name: Upload logs on failure 53 uses: actions/upload-artifact@v3 54 if: failure() 55 with: 56 name: flac-${{ github.sha }}-${{ github.run_id }}-logs 57 path: | 58 ./flac-**/**/*.log 59