File tree Expand file tree Collapse file tree 3 files changed +42
-0
lines changed Expand file tree Collapse file tree 3 files changed +42
-0
lines changed Original file line number Diff line number Diff line change @@ -48,6 +48,15 @@ steps:
48
48
permit_on_passed : true
49
49
agents :
50
50
queue : linter
51
+
52
+ - label : " :swift: Package.resolved"
53
+ plugins : [$CI_TOOLKIT]
54
+ notify :
55
+ - github_commit_status :
56
+ context : " Package.resolved"
57
+ command : |
58
+ install_gems
59
+ bundle exec make validate-package-resolved
51
60
52
61
# ################
53
62
# Build and Test
Original file line number Diff line number Diff line change @@ -59,6 +59,9 @@ ifndef BUILD_NUMBER
59
59
override BUILD_NUMBER = 0
60
60
endif
61
61
62
+ validate-package-resolved : bundle-install
63
+ @bundle exec fastlane validate_package_resolved scheme:$(SCHEME_DEMO )
64
+
62
65
bundle-install :
63
66
bundle install
64
67
Original file line number Diff line number Diff line change @@ -80,6 +80,18 @@ platform :ios do
80
80
)
81
81
end
82
82
83
+ desc 'Checks whether all Package.resolved files are current'
84
+ lane :validate_package_resolved do |scheme :|
85
+ resolve_package_dependencies_for_project ( project : XCODEPROJ_PATH , scheme : scheme )
86
+ resolve_package_dependencies_for_spm
87
+
88
+ if uncommitted_changes . empty?
89
+ UI . success ( 'No uncommitted changes found.' )
90
+ else
91
+ UI . user_error! ( "Uncommitted changes detected: \n #{ uncommitted_changes } " )
92
+ end
93
+ end
94
+
83
95
desc 'Builds the demo app from the given scheme for distribution'
84
96
lane :build_demo_for_distribution do |scheme :, build_number :|
85
97
UI . user_error! 'Please pass a build number by calling the lane with build_number:VALUE' if build_number . nil? || build_number . empty?
@@ -219,3 +231,21 @@ def read_from_xcconfig!(key:, xcconfig:)
219
231
220
232
configs [ key ]
221
233
end
234
+
235
+ def resolve_package_dependencies_for_project ( project :, scheme :)
236
+ xcodebuild (
237
+ project : project ,
238
+ scheme : scheme ,
239
+ configuration : 'Debug' ,
240
+ clean : true ,
241
+ xcargs : '-resolvePackageDependencies -skipPackageUpdates'
242
+ )
243
+ end
244
+
245
+ def resolve_package_dependencies_for_spm
246
+ spm ( command : 'resolve' )
247
+ end
248
+
249
+ def uncommitted_changes
250
+ sh ( 'git status --porcelain' ) . strip
251
+ end
You can’t perform that action at this time.
0 commit comments