Skip to content

Commit 5515ba0

Browse files
authored
ci: Check V10 API stability (#8742)
1 parent 7b0428d commit 5515ba0

3 files changed

Lines changed: 47 additions & 676 deletions

File tree

.github/file-filters.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,9 @@ run_api_stability_for_prs: &run_api_stability_for_prs
118118
- "sdk_api.json"
119119
- "sdk_api_sentryswiftui.json"
120120
- "sdk_api_objc.json"
121+
- "sdk_api_v10.json"
122+
- "sdk_api_objc_v10.json"
123+
- "sdk_api_objc_v10.diff.json"
121124

122125
# Build configuration
123126
- "Makefile"

.github/workflows/api-stability.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ jobs:
5050
mv sdk_api_sentryswiftui.json sdk_api_sentryswiftui_base.json
5151
mv sdk_api_objc.json sdk_api_objc_base.json
5252
mv sdk_api_objc.diff.json sdk_api_objc.diff_base.json
53+
mv sdk_api_v10.json sdk_api_v10_base.json
54+
mv sdk_api_objc_v10.json sdk_api_objc_v10_base.json
55+
mv sdk_api_objc_v10.diff.json sdk_api_objc_v10.diff_base.json
5356
./scripts/update-api.sh
5457
5558
- name: Diagnose breaking changes for Sentry
@@ -112,6 +115,47 @@ jobs:
112115
exit 1
113116
fi
114117
118+
- name: Diagnose breaking changes for Sentry V10
119+
if: always()
120+
run: |
121+
if diff -q "sdk_api_v10_base.json" "sdk_api_v10.json" > /dev/null; then
122+
echo "No Sentry V10 API changes detected."
123+
else
124+
echo "❌ Sentry V10 public API changes are detected. If they're intended run 'make generate-public-api' and commit the changes."
125+
diff "sdk_api_v10_base.json" "sdk_api_v10.json" || true
126+
xcrun --sdk iphoneos swift-api-digester \
127+
-diagnose-sdk \
128+
-o v10_result.json \
129+
-input-paths sdk_api_v10_base.json \
130+
-input-paths sdk_api_v10.json \
131+
-json \
132+
-v
133+
cat v10_result.json
134+
exit 1
135+
fi
136+
137+
- name: Diagnose breaking changes for SentryObjC V10
138+
if: always()
139+
run: |
140+
if diff -q "sdk_api_objc_v10_base.json" "sdk_api_objc_v10.json" > /dev/null; then
141+
echo "No SentryObjC V10 API changes detected."
142+
else
143+
echo "❌ SentryObjC V10 public API changes are detected. If they're intended run 'make generate-public-api' and commit the changes."
144+
diff "sdk_api_objc_v10_base.json" "sdk_api_objc_v10.json" || true
145+
exit 1
146+
fi
147+
148+
- name: Diagnose ObjC/ObjCCompat V10 drift changes
149+
if: always()
150+
run: |
151+
if diff -q "sdk_api_objc_v10.diff_base.json" "sdk_api_objc_v10.diff.json" > /dev/null; then
152+
echo "No ObjC/ObjCCompat V10 drift changes detected."
153+
else
154+
echo "❌ ObjC/ObjCCompat V10 drift has changed. If intended run 'make generate-public-api' and commit the changes."
155+
diff "sdk_api_objc_v10.diff_base.json" "sdk_api_objc_v10.diff.json" || true
156+
exit 1
157+
fi
158+
115159
- name: Run CI Diagnostics
116160
uses: ./.github/actions/ci-diagnostics
117161
if: failure()

0 commit comments

Comments
 (0)