8
8
# Use https://lvc.github.io/abi-compliance-checker/ to compare builds
9
9
# of pull requests against master. Compares checkouts of github.base_ref and
10
10
# 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 :
12
88
runs-on : ubuntu-latest
13
89
if : github.repository_owner == 'oneapi-src'
14
90
steps :
71
147
-l libze_loader \
72
148
-old base.dump \
73
149
-new head.dump \
74
- -report-path report .html
150
+ -report-path master_report .html
75
151
- uses : actions/upload-artifact@v3
76
152
if : always()
77
153
with :
78
154
name : abi-report
79
- path : report .html
155
+ path : master_report .html
0 commit comments