Skip to content

Commit b81b24e

Browse files
nrspruitlisanna-dettwyler
authored andcommitted
Update workflows to ABI check with last released tag
Signed-off-by: Neil R. Spruit <[email protected]>
1 parent 6105ae9 commit b81b24e

File tree

1 file changed

+79
-3
lines changed

1 file changed

+79
-3
lines changed

.github/workflows/check-abi.yml

Lines changed: 79 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,83 @@ jobs:
88
# Use https://lvc.github.io/abi-compliance-checker/ to compare builds
99
# of pull requests against master. Compares checkouts of github.base_ref and
1010
# github.head_ref.
11-
check-abi:
11+
check-abi-last-release:
12+
runs-on: ubuntu-latest
13+
if: github.repository_owner == 'oneapi-src'
14+
steps:
15+
- name: Install dependencies
16+
run: |
17+
sudo apt update
18+
sudo apt install -y elfutils universal-ctags
19+
- uses: actions/checkout@v2
20+
with:
21+
fetch-depth: 0 # Required due to the way Git works, without it this action won't be able to find any or the correct tags
22+
- uses: actions-ecosystem/action-get-latest-tag@v1
23+
id: get-latest-tag
24+
with:
25+
semver_only: true
26+
- name: Checkout base
27+
uses: actions/checkout@v3
28+
with:
29+
ref: ${{ steps.get-latest-tag.outputs.tag }}
30+
clean: true
31+
path: base
32+
- name: Checkout head
33+
uses: actions/checkout@v3
34+
with:
35+
clean: true
36+
path: head
37+
ref: ${{ github.event.pull_request.head.sha }}
38+
- name: Build debug base
39+
run: |
40+
mkdir base/build
41+
cd base/build
42+
cmake -DCMAKE_BUILD_TYPE=Debug ..
43+
make -j$(nproc)
44+
- name: Build debug head
45+
run: |
46+
mkdir head/build
47+
cd head/build
48+
cmake -DCMAKE_BUILD_TYPE=Debug ..
49+
make -j$(nproc)
50+
- name: Download and setup abi-dumper
51+
run: |
52+
wget https://github.com/lvc/abi-dumper/archive/refs/tags/1.2.tar.gz -O abi-dumper.tar.gz
53+
tar -xzf abi-dumper.tar.gz
54+
cp abi-dumper-*/abi-dumper.pl .
55+
chmod +x abi-dumper.pl
56+
- name: Generate dump for base
57+
run: |
58+
./abi-dumper.pl \
59+
./base/build/lib/libze_loader.so \
60+
-lver $(cat ./base/build/VERSION) \
61+
-public-headers ./base/include \
62+
-o ./base.dump
63+
- name: Generate dump for head
64+
run: |
65+
./abi-dumper.pl \
66+
./head/build/lib/libze_loader.so \
67+
-lver $(cat ./head/build/VERSION) \
68+
-public-headers ./head/include \
69+
-o ./head.dump
70+
- name: Download and setup abi-compliance-checker
71+
run: |
72+
wget https://github.com/lvc/abi-compliance-checker/tarball/master -O abi-compliance-checker.tar.gz
73+
tar -xzf abi-compliance-checker.tar.gz
74+
chmod +x lvc-abi-compliance-checker-*/abi-compliance-checker.pl
75+
- name: Compare dumps
76+
run: |
77+
lvc-abi-compliance-checker-*/abi-compliance-checker.pl \
78+
-l libze_loader \
79+
-old base.dump \
80+
-new head.dump \
81+
-report-path release_report.html
82+
- uses: actions/upload-artifact@v3
83+
if: always()
84+
with:
85+
name: abi-report
86+
path: release_report.html
87+
check-abi-master:
1288
runs-on: ubuntu-latest
1389
if: github.repository_owner == 'oneapi-src'
1490
steps:
@@ -71,9 +147,9 @@ jobs:
71147
-l libze_loader \
72148
-old base.dump \
73149
-new head.dump \
74-
-report-path report.html
150+
-report-path master_report.html
75151
- uses: actions/upload-artifact@v3
76152
if: always()
77153
with:
78154
name: abi-report
79-
path: report.html
155+
path: master_report.html

0 commit comments

Comments
 (0)