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