@@ -12,11 +12,12 @@ permissions:
12
12
contents : read
13
13
14
14
jobs :
15
- Pods :
15
+ Lint :
16
16
name : Cocoapods Lint
17
- runs-on : macos-11
17
+ runs-on : macos-15
18
18
env :
19
- DEVELOPER_DIR : /Applications/Xcode_13.2.1.app
19
+ LC_ALL : en_US.UTF-8
20
+ DEVELOPER_DIR : /Applications/Xcode_16.0.app
20
21
steps :
21
22
- name : Checkout
22
23
uses : actions/checkout@v3
@@ -27,10 +28,10 @@ jobs:
27
28
- name : Install Xcpretty
28
29
run : gem install xcpretty --no-document --quiet
29
30
30
- - name : Pod Update.
31
+ - name : Pod Update
31
32
run : pod repo update --silent
32
33
33
- - name : Pod Install.
34
+ - name : Pod Install
34
35
run : pod install
35
36
36
37
- name : Run SDWebImage podspec lint
@@ -39,22 +40,19 @@ jobs:
39
40
pod lib lint SDWebImage.podspec --allow-warnings --skip-tests
40
41
41
42
Demo :
42
- name : Run Demo
43
- runs-on : macos-11
43
+ name : Cocoapods Demo
44
+ runs-on : macos-15
44
45
env :
45
- DEVELOPER_DIR : /Applications/Xcode_13.2.1.app
46
+ LC_ALL : en_US.UTF-8
47
+ DEVELOPER_DIR : /Applications/Xcode_16.0.app
46
48
WORKSPACE_NAME : SDWebImage.xcworkspace
47
- OSXSCHEME : SDWebImage OSX Demo
48
- iOSSCHEME : SDWebImage iOS Demo
49
- TVSCHEME : SDWebImage TV Demo
50
- WATCHSCHEME : SDWebImage Watch Demo
51
- strategy :
52
- matrix :
53
- iosDestination : ["name=iPhone 13 Pro"]
54
- tvOSDestination : ["name=Apple TV 4K"]
55
- watchOSDestination : ["platform=watchOS Simulator,name=Apple Watch Series 7 - 45mm"]
56
- macOSDestination : ["platform=macOS"]
57
- macCatalystDestination : ["platform=macOS,arch=x86_64,variant=Mac Catalyst"]
49
+ CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
50
+ iosDestination : generic/platform=iOS Simulator
51
+ macOSDestination : platform=macOS,arch=x86_64
52
+ macCatalystDestination : platform=macOS,arch=x86_64,variant=Mac Catalyst
53
+ tvOSDestination : generic/platform=tvOS Simulator
54
+ watchOSDestination : generic/platform=watchOS Simulator
55
+ visionOSDestination : generic/platform=visionOS Simulator
58
56
steps :
59
57
- name : Checkout
60
58
uses : actions/checkout@v3
@@ -74,38 +72,63 @@ jobs:
74
72
- name : Run demo for OSX
75
73
run : |
76
74
set -o pipefail
77
- xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.OSXSCHEME }} " -destination "${{ matrix .macOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
75
+ xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "SDWebImage OSX Demo " -destination "${{ env .macOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
78
76
79
77
- name : Run demo for iOS
80
78
run : |
81
79
set -o pipefail
82
- xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.iOSSCHEME }} " -destination "${{ matrix .iosDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
80
+ xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "SDWebImage iOS Demo " -destination "${{ env .iosDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
83
81
84
82
- name : Run demo for TV
85
83
run : |
86
84
set -o pipefail
87
- xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.TVSCHEME }} " -destination "${{ matrix .tvOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
85
+ xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "SDWebImage TV Demo " -destination "${{ env .tvOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
88
86
89
87
- name : Run demo for Watch
90
88
run : |
91
89
set -o pipefail
92
- xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.WATCHSCHEME }}" -destination "${{ matrix.watchOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
93
-
90
+ xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "SDWebImage Watch Demo" -destination "${{ env.watchOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
91
+
92
+ - name : Run demo for Vision
93
+ run : |
94
+ set -o pipefail
95
+ xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "SDWebImage Vision Demo" -destination "${{ env.visionOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
96
+
94
97
Test :
95
98
name : Unit Test
96
- runs-on : macos-11
99
+ runs-on : macos-15
97
100
env :
98
- DEVELOPER_DIR : /Applications/Xcode_13.2.1.app
101
+ LC_ALL : en_US.UTF-8
102
+ DEVELOPER_DIR : /Applications/Xcode_16.0.app
99
103
WORKSPACE_NAME : SDWebImage.xcworkspace
100
104
CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
105
+ # use matrix to generate jobs for each platform
101
106
strategy :
107
+ fail-fast : false
102
108
matrix :
103
- iosDestination : ["platform=iOS Simulator,name=iPhone 13 Pro"]
104
- macOSDestination : ["platform=macOS,arch=x86_64"]
105
- tvOSDestination : ["platform=tvOS Simulator,name=Apple TV 4K"]
109
+ platform : [iOS, macOS, tvOS, visionOS]
110
+ include :
111
+ - platform : iOS
112
+ destination : platform=iOS Simulator,name=iPhone 16 Pro Max
113
+ scheme : iOS
114
+ flag : ios
115
+ - platform : macOS
116
+ destination : platform=macOS,arch=x86_64
117
+ scheme : Mac
118
+ flag : macos
119
+ - platform : tvOS
120
+ destination : platform=tvOS Simulator,name=Apple TV 4K (3rd generation)
121
+ scheme : TV
122
+ flag : tvos
123
+ - platform : visionOS
124
+ destination : platform=visionOS Simulator,name=Apple Vision Pro
125
+ scheme : Vision
126
+ flag : visionos
106
127
steps :
107
128
- name : Checkout
108
129
uses : actions/checkout@v3
130
+ with :
131
+ fetch-depth : 0
109
132
110
133
- name : Install Cocoapods
111
134
run : gem install cocoapods --no-document --quiet
@@ -118,62 +141,38 @@ jobs:
118
141
119
142
- name : Pod Install
120
143
run : pod install
121
-
144
+
122
145
- name : Clean DerivedData
123
146
run : |
124
147
rm -rf ~/Library/Developer/Xcode/DerivedData/
125
148
mkdir DerivedData
126
149
127
- - name : Test - ${{ matrix.iosDestination }}
150
+ - name : Run test
128
151
run : |
129
152
set -o pipefail
130
- xcodebuild test -workspace "${{ env.WORKSPACE_NAME }}" -scheme "Tests iOS" -destination "${{ matrix.iosDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO
131
- mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/iOS
132
-
133
- - name : Test - ${{ matrix.macOSDestination }}
134
- run : |
135
- set -o pipefail
136
- xcodebuild test -workspace "${{ env.WORKSPACE_NAME }}" -scheme "Tests Mac" -destination "${{ matrix.macOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO
137
- mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/macOS
138
-
139
- - name : Test - ${{ matrix.tvOSDestination }}
140
- run : |
141
- set -o pipefail
142
- xcodebuild test -workspace "${{ env.WORKSPACE_NAME }}" -scheme "Tests TV" -destination "${{ matrix.tvOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO
143
- mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/tvOS
153
+ xcodebuild build-for-testing -workspace "${{ env.WORKSPACE_NAME }}" -scheme "Tests ${{ matrix.scheme }}" -destination "${{ matrix.destination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
154
+ xcodebuild test-without-building -workspace "${{ env.WORKSPACE_NAME }}" -scheme "Tests ${{ matrix.scheme }}" -destination "${{ matrix.destination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO
155
+ mv ~/Library/Developer/Xcode/DerivedData/ "./DerivedData/${{ matrix.platform }}"
144
156
145
157
- name : Code Coverage
146
158
run : |
147
159
set -o pipefail
148
160
export PATH="/usr/local/opt/curl/bin:$PATH"
149
161
curl --version
150
- bash <(curl -s https://codecov.io/bash) -v -D './DerivedData/macOS' -J '^SDWebImage$' -c -X gcov -F macos
151
- bash <(curl -s https://codecov.io/bash) -v -D './DerivedData/iOS' -J '^SDWebImage$' -c -X gcov -F ios
152
- bash <(curl -s https://codecov.io/bash) -v -D './DerivedData/tvOS' -J '^SDWebImage$' -c -X gcov -F tvos
162
+ bash <(curl -s https://codecov.io/bash) -v -D "./DerivedData/${{ matrix.platform }}" -J '^SDWebImage$' -c -X gcov -F "${{ matrix.flag }}"
153
163
154
164
Build :
155
165
name : Build Library
156
- runs-on : macos-11
166
+ runs-on : macos-15
157
167
env :
158
- DEVELOPER_DIR : /Applications/Xcode_13.2.1.app
168
+ LC_ALL : en_US.UTF-8
169
+ DEVELOPER_DIR : /Applications/Xcode_16.0.app
159
170
PROJECT_NAME : SDWebImage.xcodeproj
160
171
SCHEME_NAME : SDWebImage
161
172
steps :
162
173
- name : Checkout
163
174
uses : actions/checkout@v3
164
175
165
- - name : Install Cocoapods
166
- run : gem install cocoapods --no-document --quiet
167
-
168
- - name : Install Xcpretty
169
- run : gem install xcpretty --no-document --quiet
170
-
171
- - name : Pod Update
172
- run : pod repo update --silent
173
-
174
- - name : Pod Install
175
- run : pod install
176
-
177
176
- name : Build the SwiftPM
178
177
run : |
179
178
set -o pipefail
@@ -183,14 +182,15 @@ jobs:
183
182
- name : Build as static library
184
183
run : |
185
184
set -o pipefail
186
- xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "SDWebImage static" -sdk iphonesimulator PLATFORM_NAME=iphonesimulator -configuration Release | xcpretty -c
185
+ xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "SDWebImage static" -sdk iphonesimulator PLATFORM_NAME=iphonesimulator -configuration Debug | xcpretty -c
187
186
rm -rf ~/Library/Developer/Xcode/DerivedData/
188
187
- name : Build as dynamic frameworks
189
188
run : |
190
189
set -o pipefail
191
- xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk macosx -configuration Release | xcpretty -c
192
- xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk iphonesimulator PLATFORM_NAME=iphonesimulator -configuration Release | xcpretty -c
193
- xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk appletvsimulator -configuration Release | xcpretty -c
194
- xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk watchsimulator -configuration Release | xcpretty -c
195
- xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -destination "platform=macOS,arch=x86_64,variant=Mac Catalyst" -configuration Release | xcpretty -c
190
+ xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk macosx -configuration Debug | xcpretty -c
191
+ xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk iphonesimulator PLATFORM_NAME=iphonesimulator -configuration Debug | xcpretty -c
192
+ xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk appletvsimulator -configuration Debug | xcpretty -c
193
+ xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk watchsimulator -configuration Debug | xcpretty -c
194
+ xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -destination "platform=macOS,arch=x86_64,variant=Mac Catalyst" -configuration Debug | xcpretty -c
195
+ xcodebuild build -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -sdk xrsimulator -configuration Debug | xcpretty -c
196
196
rm -rf ~/Library/Developer/Xcode/DerivedData/
0 commit comments