Skip to content

Commit 0e4a9dc

Browse files
authored
ref(build): Split xcode-ci and build-sample into per-sample targets (#7530)
1 parent b1994b3 commit 0e4a9dc

File tree

2 files changed

+636
-115
lines changed

2 files changed

+636
-115
lines changed

Makefile

Lines changed: 309 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -223,16 +223,31 @@ build-xcframework-sample:
223223
# SAMPLE APPS
224224
# ============================================================================
225225

226-
## Build all SentrySPM sample apps
226+
## Build all sample apps
227227
#
228-
# Builds all compile-from-source SPM sample apps for every supported platform.
229-
.PHONY: build-sample-spm
230-
build-sample-spm: \
228+
# Builds all sample apps for every supported platform.
229+
.PHONY: build-samples
230+
build-samples: \
231+
build-sample-DistributionSample \
232+
build-sample-iOS-ObjectiveC \
233+
build-sample-iOS-Swift \
234+
build-sample-iOS-Swift6 \
235+
build-sample-iOS-SwiftUI \
231236
build-sample-iOS-SwiftUI-SPM \
232-
build-sample-watchOS-SwiftUI-SPM \
233-
build-sample-tvOS-SwiftUI-SPM \
237+
build-sample-iOS-SwiftUI-Widgets \
238+
build-sample-iOS15-SwiftUI \
239+
build-sample-macOS-Swift \
240+
build-sample-macOS-SwiftUI \
234241
build-sample-macOS-SwiftUI-SPM \
235-
build-sample-visionOS-SwiftUI-SPM
242+
build-sample-SDK-Size \
243+
build-sample-SessionReplay-CameraTest \
244+
build-sample-SPM \
245+
build-sample-tvOS-Swift \
246+
build-sample-tvOS-SwiftUI-SPM \
247+
build-sample-visionOS-Swift \
248+
build-sample-visionOS-SwiftUI-SPM \
249+
build-sample-watchOS-Swift \
250+
build-sample-watchOS-SwiftUI-SPM
236251

237252
## Build the iOS-SwiftUI-SPM sample app
238253
#
@@ -308,6 +323,194 @@ build-sample-iOS-ObjectiveCpp-NoModules:
308323
-destination 'platform=iOS Simulator,OS=$(IOS_SIMULATOR_OS),name=$(IOS_DEVICE_NAME)' \
309324
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
310325

326+
## Build the iOS-Swift sample app
327+
#
328+
# Builds the iOS-Swift sample app for the iOS Simulator.
329+
.PHONY: build-sample-iOS-Swift
330+
build-sample-iOS-Swift:
331+
xcodegen --spec Samples/SentrySampleShared/SentrySampleShared.yml
332+
xcodegen --spec Samples/iOS-Swift/iOS-Swift.yml
333+
set -o pipefail && xcodebuild \
334+
-workspace Sentry.xcworkspace \
335+
-scheme iOS-Swift \
336+
-destination 'platform=iOS Simulator,OS=$(IOS_SIMULATOR_OS),name=$(IOS_DEVICE_NAME)' \
337+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
338+
339+
## Build the iOS-Swift6 sample app
340+
#
341+
# Builds the iOS-Swift6 sample app for the iOS Simulator.
342+
.PHONY: build-sample-iOS-Swift6
343+
build-sample-iOS-Swift6:
344+
xcodegen --spec Samples/SentrySampleShared/SentrySampleShared.yml
345+
xcodegen --spec Samples/iOS-Swift6/iOS-Swift6.yml
346+
set -o pipefail && xcodebuild \
347+
-workspace Sentry.xcworkspace \
348+
-scheme iOS-Swift6 \
349+
-destination 'platform=iOS Simulator,OS=$(IOS_SIMULATOR_OS),name=$(IOS_DEVICE_NAME)' \
350+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
351+
352+
## Build the iOS-SwiftUI sample app
353+
#
354+
# Builds the iOS-SwiftUI sample app for the iOS Simulator.
355+
.PHONY: build-sample-iOS-SwiftUI
356+
build-sample-iOS-SwiftUI:
357+
xcodegen --spec Samples/SentrySampleShared/SentrySampleShared.yml
358+
xcodegen --spec Samples/iOS-SwiftUI/iOS-SwiftUI.yml
359+
set -o pipefail && xcodebuild \
360+
-workspace Sentry.xcworkspace \
361+
-scheme iOS-SwiftUI \
362+
-destination 'platform=iOS Simulator,OS=$(IOS_SIMULATOR_OS),name=$(IOS_DEVICE_NAME)' \
363+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
364+
365+
## Build the iOS-SwiftUI-Widgets sample app
366+
#
367+
# Builds the iOS-SwiftUI-Widgets sample app for the iOS Simulator.
368+
.PHONY: build-sample-iOS-SwiftUI-Widgets
369+
build-sample-iOS-SwiftUI-Widgets:
370+
xcodegen --spec Samples/SentrySampleShared/SentrySampleShared.yml
371+
xcodegen --spec Samples/iOS-SwiftUI-Widgets/iOS-SwiftUI-Widgets.yml
372+
set -o pipefail && xcodebuild \
373+
-workspace Sentry.xcworkspace \
374+
-scheme iOS-SwiftUI-Widgets \
375+
-destination 'platform=iOS Simulator,OS=$(IOS_SIMULATOR_OS),name=$(IOS_DEVICE_NAME)' \
376+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
377+
378+
## Build the iOS-ObjectiveC sample app
379+
#
380+
# Builds the iOS-ObjectiveC sample app for the iOS Simulator.
381+
.PHONY: build-sample-iOS-ObjectiveC
382+
build-sample-iOS-ObjectiveC:
383+
xcodegen --spec Samples/SentrySampleShared/SentrySampleShared.yml
384+
xcodegen --spec Samples/iOS-ObjectiveC/iOS-ObjectiveC.yml
385+
set -o pipefail && xcodebuild \
386+
-workspace Sentry.xcworkspace \
387+
-scheme iOS-ObjectiveC \
388+
-destination 'platform=iOS Simulator,OS=$(IOS_SIMULATOR_OS),name=$(IOS_DEVICE_NAME)' \
389+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
390+
391+
## Build the iOS15-SwiftUI sample app
392+
#
393+
# Builds the iOS15-SwiftUI sample app for the iOS Simulator.
394+
.PHONY: build-sample-iOS15-SwiftUI
395+
build-sample-iOS15-SwiftUI:
396+
xcodegen --spec Samples/SentrySampleShared/SentrySampleShared.yml
397+
xcodegen --spec Samples/iOS15-SwiftUI/iOS15-SwiftUI.yml
398+
set -o pipefail && xcodebuild \
399+
-workspace Sentry.xcworkspace \
400+
-scheme iOS15-SwiftUI \
401+
-destination 'platform=iOS Simulator,OS=$(IOS_SIMULATOR_OS),name=$(IOS_DEVICE_NAME)' \
402+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
403+
404+
## Build the SessionReplay-CameraTest sample app
405+
#
406+
# Builds the SessionReplay-CameraTest sample app for the iOS Simulator.
407+
.PHONY: build-sample-SessionReplay-CameraTest
408+
build-sample-SessionReplay-CameraTest:
409+
xcodegen --spec Samples/SentrySampleShared/SentrySampleShared.yml
410+
xcodegen --spec Samples/SessionReplay-CameraTest/SessionReplay-CameraTest.yml
411+
set -o pipefail && xcodebuild \
412+
-workspace Sentry.xcworkspace \
413+
-scheme SessionReplay-CameraTest \
414+
-destination 'platform=iOS Simulator,OS=$(IOS_SIMULATOR_OS),name=$(IOS_DEVICE_NAME)' \
415+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
416+
417+
## Build the macOS-Swift sample app
418+
#
419+
# Builds the macOS-Swift sample app.
420+
.PHONY: build-sample-macOS-Swift
421+
build-sample-macOS-Swift:
422+
xcodegen --spec Samples/SentrySampleShared/SentrySampleShared.yml
423+
xcodegen --spec Samples/macOS-Swift/macOS-Swift.yml
424+
set -o pipefail && xcodebuild \
425+
-workspace Sentry.xcworkspace \
426+
-scheme macOS-Swift \
427+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
428+
429+
## Build the macOS-SwiftUI sample app
430+
#
431+
# Builds the macOS-SwiftUI sample app.
432+
.PHONY: build-sample-macOS-SwiftUI
433+
build-sample-macOS-SwiftUI:
434+
xcodegen --spec Samples/SentrySampleShared/SentrySampleShared.yml
435+
xcodegen --spec Samples/macOS-SwiftUI/macOS-SwiftUI.yml
436+
set -o pipefail && xcodebuild \
437+
-workspace Sentry.xcworkspace \
438+
-scheme macOS-SwiftUI \
439+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
440+
441+
## Build the tvOS-Swift sample app
442+
#
443+
# Builds the tvOS-Swift sample app for the tvOS Simulator.
444+
.PHONY: build-sample-tvOS-Swift
445+
build-sample-tvOS-Swift:
446+
xcodegen --spec Samples/SentrySampleShared/SentrySampleShared.yml
447+
xcodegen --spec Samples/tvOS-Swift/tvOS-Swift.yml
448+
set -o pipefail && xcodebuild \
449+
-workspace Sentry.xcworkspace \
450+
-scheme tvOS-Swift \
451+
-destination 'platform=tvOS Simulator,OS=$(TVOS_SIMULATOR_OS),name=$(TVOS_DEVICE_NAME)' \
452+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
453+
454+
## Build the visionOS-Swift sample app
455+
#
456+
# Builds the visionOS-Swift sample app for the visionOS Simulator.
457+
.PHONY: build-sample-visionOS-Swift
458+
build-sample-visionOS-Swift:
459+
xcodegen --spec Samples/SentrySampleShared/SentrySampleShared.yml
460+
xcodegen --spec Samples/visionOS-Swift/visionOS-Swift.yml
461+
set -o pipefail && xcodebuild \
462+
-workspace Sentry.xcworkspace \
463+
-scheme visionOS-Swift \
464+
-destination 'platform=visionOS Simulator,OS=$(VISIONOS_SIMULATOR_OS),name=$(VISIONOS_DEVICE_NAME)' \
465+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
466+
467+
## Build the watchOS-Swift sample app
468+
#
469+
# Builds the watchOS-Swift sample app for the watchOS Simulator.
470+
.PHONY: build-sample-watchOS-Swift
471+
build-sample-watchOS-Swift:
472+
xcodegen --spec Samples/SentrySampleShared/SentrySampleShared.yml
473+
xcodegen --spec Samples/watchOS-Swift/watchOS-Swift.yml
474+
set -o pipefail && xcodebuild \
475+
-workspace Sentry.xcworkspace \
476+
-scheme 'watchOS-Swift WatchKit App' \
477+
-destination 'platform=watchOS Simulator,OS=$(WATCHOS_SIMULATOR_OS),name=$(WATCHOS_DEVICE_NAME)' \
478+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
479+
480+
## Build the SPM sample app
481+
#
482+
# Builds the SPM sample app.
483+
.PHONY: build-sample-SPM
484+
build-sample-SPM:
485+
xcodegen --spec Samples/SPM/SPM.yml
486+
set -o pipefail && xcodebuild \
487+
-workspace Sentry.xcworkspace \
488+
-scheme SPM \
489+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
490+
491+
## Build the DistributionSample app
492+
#
493+
# Builds the DistributionSample app.
494+
.PHONY: build-sample-DistributionSample
495+
build-sample-DistributionSample:
496+
xcodegen --spec Samples/DistributionSample/DistributionSample.yml
497+
set -o pipefail && xcodebuild \
498+
-workspace Sentry.xcworkspace \
499+
-scheme DistributionSample \
500+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
501+
502+
## Build the SDK-Size sample app
503+
#
504+
# Builds the SDK-Size sample app for the iOS Simulator.
505+
.PHONY: build-sample-SDK-Size
506+
build-sample-SDK-Size:
507+
xcodegen --spec Samples/SDK-Size/SDK-Size.yml
508+
set -o pipefail && xcodebuild \
509+
-workspace Sentry.xcworkspace \
510+
-scheme SDK-Size \
511+
-destination 'platform=iOS Simulator,OS=$(IOS_SIMULATOR_OS),name=$(IOS_DEVICE_NAME)' \
512+
CODE_SIGNING_ALLOWED="NO" build | xcbeautify --preserve-unbeautified
513+
311514
# ============================================================================
312515
# TESTING
313516
# ============================================================================
@@ -682,32 +885,124 @@ xcode: xcode-ci
682885
## Generate all sample Xcode projects
683886
#
684887
# Generates Xcode projects for all sample apps using xcodegen.
888+
# Run a specific sample with make xcode-ci-<name>, e.g. make xcode-ci-iOS-Swift.
685889
.PHONY: xcode-ci
686-
xcode-ci:
890+
xcode-ci: xcode-ci-SentrySampleShared \
891+
xcode-ci-SPM \
892+
xcode-ci-SessionReplay-CameraTest \
893+
xcode-ci-iOS-ObjectiveC \
894+
xcode-ci-iOS-ObjectiveCpp-NoModules \
895+
xcode-ci-iOS-Swift \
896+
xcode-ci-iOS-Swift6 \
897+
xcode-ci-iOS-SwiftUI \
898+
xcode-ci-iOS-SwiftUI-SPM \
899+
xcode-ci-iOS-SwiftUI-Widgets \
900+
xcode-ci-iOS15-SwiftUI \
901+
xcode-ci-macOS-Swift \
902+
xcode-ci-macOS-SwiftUI \
903+
xcode-ci-macOS-SwiftUI-SPM \
904+
xcode-ci-tvOS-Swift \
905+
xcode-ci-tvOS-SwiftUI-SPM \
906+
xcode-ci-visionOS-Swift \
907+
xcode-ci-visionOS-SwiftUI-SPM \
908+
xcode-ci-watchOS-Swift \
909+
xcode-ci-DistributionSample \
910+
xcode-ci-SDK-Size \
911+
xcode-ci-SwiftUITestSample \
912+
xcode-ci-SwiftUICrashTest
913+
914+
.PHONY: xcode-ci-SPM
915+
xcode-ci-SPM:
687916
xcodegen --spec Samples/SPM/SPM.yml
917+
918+
.PHONY: xcode-ci-SentrySampleShared
919+
xcode-ci-SentrySampleShared:
688920
xcodegen --spec Samples/SentrySampleShared/SentrySampleShared.yml
921+
922+
.PHONY: xcode-ci-SessionReplay-CameraTest
923+
xcode-ci-SessionReplay-CameraTest: xcode-ci-SentrySampleShared
689924
xcodegen --spec Samples/SessionReplay-CameraTest/SessionReplay-CameraTest.yml
925+
926+
.PHONY: xcode-ci-iOS-ObjectiveC
927+
xcode-ci-iOS-ObjectiveC: xcode-ci-SentrySampleShared
690928
xcodegen --spec Samples/iOS-ObjectiveC/iOS-ObjectiveC.yml
929+
930+
.PHONY: xcode-ci-iOS-ObjectiveCpp-NoModules
931+
xcode-ci-iOS-ObjectiveCpp-NoModules:
691932
xcodegen --spec Samples/iOS-ObjectiveCpp-NoModules/iOS-ObjectiveCpp-NoModules.yml
933+
934+
.PHONY: xcode-ci-iOS-Swift
935+
xcode-ci-iOS-Swift: xcode-ci-SentrySampleShared
692936
xcodegen --spec Samples/iOS-Swift/iOS-Swift.yml
937+
938+
.PHONY: xcode-ci-iOS-Swift6
939+
xcode-ci-iOS-Swift6: xcode-ci-SentrySampleShared
693940
xcodegen --spec Samples/iOS-Swift6/iOS-Swift6.yml
941+
942+
.PHONY: xcode-ci-iOS-SwiftUI
943+
xcode-ci-iOS-SwiftUI: xcode-ci-SentrySampleShared
694944
xcodegen --spec Samples/iOS-SwiftUI/iOS-SwiftUI.yml
945+
946+
.PHONY: xcode-ci-iOS-SwiftUI-SPM
947+
xcode-ci-iOS-SwiftUI-SPM:
695948
xcodegen --spec Samples/iOS-SwiftUI-SPM/iOS-SwiftUI-SPM.yml
696-
xcodegen --spec Samples/tvOS-SwiftUI-SPM/tvOS-SwiftUI-SPM.yml
697-
xcodegen --spec Samples/macOS-SwiftUI-SPM/macOS-SwiftUI-SPM.yml
698-
xcodegen --spec Samples/visionOS-SwiftUI-SPM/visionOS-SwiftUI-SPM.yml
949+
950+
.PHONY: xcode-ci-iOS-SwiftUI-Widgets
951+
xcode-ci-iOS-SwiftUI-Widgets: xcode-ci-SentrySampleShared
699952
xcodegen --spec Samples/iOS-SwiftUI-Widgets/iOS-SwiftUI-Widgets.yml
953+
954+
.PHONY: xcode-ci-iOS15-SwiftUI
955+
xcode-ci-iOS15-SwiftUI: xcode-ci-SentrySampleShared
700956
xcodegen --spec Samples/iOS15-SwiftUI/iOS15-SwiftUI.yml
701-
xcodegen --spec Samples/macOS-SwiftUI/macOS-SwiftUI.yml
957+
958+
.PHONY: xcode-ci-macOS-Swift
959+
xcode-ci-macOS-Swift: xcode-ci-SentrySampleShared
702960
xcodegen --spec Samples/macOS-Swift/macOS-Swift.yml
961+
962+
.PHONY: xcode-ci-macOS-SwiftUI
963+
xcode-ci-macOS-SwiftUI: xcode-ci-SentrySampleShared
964+
xcodegen --spec Samples/macOS-SwiftUI/macOS-SwiftUI.yml
965+
966+
.PHONY: xcode-ci-macOS-SwiftUI-SPM
967+
xcode-ci-macOS-SwiftUI-SPM:
968+
xcodegen --spec Samples/macOS-SwiftUI-SPM/macOS-SwiftUI-SPM.yml
969+
970+
.PHONY: xcode-ci-tvOS-Swift
971+
xcode-ci-tvOS-Swift: xcode-ci-SentrySampleShared
703972
xcodegen --spec Samples/tvOS-Swift/tvOS-Swift.yml
973+
974+
.PHONY: xcode-ci-tvOS-SwiftUI-SPM
975+
xcode-ci-tvOS-SwiftUI-SPM:
976+
xcodegen --spec Samples/tvOS-SwiftUI-SPM/tvOS-SwiftUI-SPM.yml
977+
978+
.PHONY: xcode-ci-visionOS-Swift
979+
xcode-ci-visionOS-Swift: xcode-ci-SentrySampleShared
704980
xcodegen --spec Samples/visionOS-Swift/visionOS-Swift.yml
981+
982+
.PHONY: xcode-ci-visionOS-SwiftUI-SPM
983+
xcode-ci-visionOS-SwiftUI-SPM:
984+
xcodegen --spec Samples/visionOS-SwiftUI-SPM/visionOS-SwiftUI-SPM.yml
985+
986+
.PHONY: xcode-ci-watchOS-Swift
987+
xcode-ci-watchOS-Swift: xcode-ci-SentrySampleShared
705988
xcodegen --spec Samples/watchOS-Swift/watchOS-Swift.yml
706-
xcodegen --spec TestSamples/SwiftUITestSample/SwiftUITestSample.yml
707-
xcodegen --spec TestSamples/SwiftUICrashTest/SwiftUICrashTest.yml
989+
990+
.PHONY: xcode-ci-DistributionSample
991+
xcode-ci-DistributionSample:
708992
xcodegen --spec Samples/DistributionSample/DistributionSample.yml
993+
994+
.PHONY: xcode-ci-SDK-Size
995+
xcode-ci-SDK-Size:
709996
xcodegen --spec Samples/SDK-Size/SDK-Size.yml
710997

998+
.PHONY: xcode-ci-SwiftUITestSample
999+
xcode-ci-SwiftUITestSample:
1000+
xcodegen --spec TestSamples/SwiftUITestSample/SwiftUITestSample.yml
1001+
1002+
.PHONY: xcode-ci-SwiftUICrashTest
1003+
xcode-ci-SwiftUICrashTest:
1004+
xcodegen --spec TestSamples/SwiftUICrashTest/SwiftUICrashTest.yml
1005+
7111006
# ============================================================================
7121007
# HELP & DOCUMENTATION
7131008
# ============================================================================

0 commit comments

Comments
 (0)