• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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