1name: Libabigail ABI Checks 2on: 3 pull_request: [] 4 5jobs: 6 7# get-release: 8# container: ghcr.io/woodard/libabigail-ubuntu-22.04:latest 9# runs-on: ubuntu-latest 10# steps: 11# - name: Organize Files 12# run: | 13# mkdir -p /abi 14# cp /opt/abigail-env/.spack-env/view/lib/libabigail.so /abi/ 15# cp /lib/x86_64-linux-gnu/libc.so.6 /abi/ 16# cp /lib/x86_64-linux-gnu/libstdc++.so.6 /abi/ 17# cp /lib/x86_64-linux-gnu/libsystemd.so.0 /abi/ 18 19# - name: Upload Libs 20# uses: actions/upload-artifact@v3 21# with: 22# name: release-libs 23# path: | 24# /abi/libabigail.so 25# /abi/libc.so.6 26# /abi/libstdc++.so.6 27# /abi/libsystemd.so.0 28 29 30 get-latest: 31 container: ghcr.io/woodard/libabigail-ubuntu-22.04:latest 32 runs-on: ubuntu-latest 33 steps: 34 - name: Organize Files 35 run: | 36 mkdir -p /abi 37 cp /opt/abigail-env/.spack-env/view/lib/libabigail.so /abi/ 38 cp /lib/x86_64-linux-gnu/libc.so.6 /abi/ 39 cp /lib/x86_64-linux-gnu/libstdc++.so.6 /abi/ 40 cp /lib/x86_64-linux-gnu/libsystemd.so.0 /abi/ 41 42 - name: Upload Libs 43 uses: actions/upload-artifact@v3 44 with: 45 name: latest-libs 46 path: | 47 /abi/libabigail.so 48 /abi/libc.so.6 49 /abi/libstdc++.so.6 50 /abi/libsystemd.so.0 51 52 get-pr: 53 container: ghcr.io/woodard/libabigail-ubuntu-22.04:latest 54 runs-on: ubuntu-latest 55 steps: 56 - name: Build Pull Request 57 uses: actions/checkout@v3 58 - name: Build 59 run: | 60 rm -rf /src 61 cp -R $PWD /src 62 ls /src 63 . /opt/spack/share/spack/setup-env.sh 64 cd /opt/abigail-env 65 spack install 66 67 - name: Organize Files 68 run: | 69 mkdir -p /abi 70 cp /opt/abigail-env/.spack-env/view/lib/libabigail.so /abi/ 71 cp /lib/x86_64-linux-gnu/libc.so.6 /abi/ 72 cp /lib/x86_64-linux-gnu/libstdc++.so.6 /abi/ 73 cp /lib/x86_64-linux-gnu/libsystemd.so.0 /abi/ 74 75 - name: Upload Libs 76 uses: actions/upload-artifact@v3 77 with: 78 name: pr-libs 79 path: | 80 /abi/libabigail.so 81 /abi/libc.so.6 82 /abi/libstdc++.so.6 83 /abi/libsystemd.so.0 84 85 abi: 86 runs-on: ubuntu-latest 87 needs: [get-latest, get-pr] # get-release 88 strategy: 89 fail-fast: false 90 matrix: 91 92 # Testing every paired library for release vs pr and main vs. pr 93 libs: ["libabigail.so", 94 "libc.so.6", 95 "libstdc++.so.6", 96 "libsystemd.so.0"] 97 98 # Artifact pairs (named) for comparison) 99 artifacts: [["pr-libs", "latest-libs"]] 100 #["pr-libs", "release-libs"]] 101 102 steps: 103 - name: Download Previous Version 104 uses: actions/download-artifact@v2 105 with: 106 name: ${{ matrix.artifacts[1] }} 107 path: previous/ 108 109 - name: Download Pull Request Version 110 uses: actions/download-artifact@v2 111 with: 112 name: ${{ matrix.artifacts[0] }} 113 path: current/ 114 115 - name: Show Files 116 run: | 117 ls current/ 118 ls previous/ 119 120 - name: Run Libabigail 121 uses: buildsi/libabigail-action@0.0.11 122 env: 123 lib: ${{ matrix.libs }} 124 with: 125 abidiff: previous/${{ env.lib }} current/${{ env.lib }} 126 abidw: "--abidiff current/${{ env.lib }}" 127