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 :
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