Skip to content

Commit e86386c

Browse files
committed
Fix the CI, re-enable GitHub Actions
1 parent a75add8 commit e86386c

File tree

7 files changed

+390
-45
lines changed

7 files changed

+390
-45
lines changed

.github/workflows/CI.yml

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
name: "SDWebImageSwiftUI CI"
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
branches:
9+
- '*'
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
Pods:
16+
name: Cocoapods Lint
17+
runs-on: macos-11
18+
env:
19+
DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
20+
steps:
21+
- name: Checkout
22+
uses: actions/checkout@v2
23+
24+
- name: Install Cocoapods
25+
run: gem install cocoapods --no-document --quiet
26+
27+
- name: Install Xcpretty
28+
run: gem install xcpretty --no-document --quiet
29+
30+
- name: Pod Update.
31+
run: pod repo update --silent
32+
33+
- name: Pod Install.
34+
run: pod install
35+
36+
- name: Run SDWebImageSwiftUI podspec lint
37+
run: |
38+
set -o pipefail
39+
pod lib lint SDWebImageSwiftUI.podspec --allow-warnings --skip-tests
40+
41+
Demo:
42+
name: Run Demo
43+
runs-on: macos-11
44+
env:
45+
DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
46+
WORKSPACE_NAME: SDWebImageSwiftUI.xcworkspace
47+
OSXSCHEME: SDWebImageSwiftUIDemo-macOS
48+
iOSSCHEME: SDWebImageSwiftUIDemo
49+
TVSCHEME: SDWebImageSwiftUIDemo-tvOS
50+
WATCHSCHEME: SDWebImageSwiftUIDemo-watchOS WatchKit App
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"]
58+
steps:
59+
- name: Checkout
60+
uses: actions/checkout@v2
61+
62+
- name: Install Cocoapods
63+
run: gem install cocoapods --no-document --quiet
64+
65+
- name: Install Xcpretty
66+
run: gem install xcpretty --no-document --quiet
67+
68+
- name: Pod Update
69+
run: pod repo update --silent
70+
71+
- name: Pod Install
72+
run: pod install
73+
74+
- name: Run demo for OSX
75+
run: |
76+
set -o pipefail
77+
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.OSXSCHEME }}" -destination "${{ matrix.macOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
78+
79+
- name: Run demo for iOS
80+
run: |
81+
set -o pipefail
82+
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.iOSSCHEME }}" -destination "${{ matrix.iosDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
83+
84+
- name: Run demo for TV
85+
run: |
86+
set -o pipefail
87+
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.TVSCHEME }}" -destination "${{ matrix.tvOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
88+
89+
- name: Run demo for Watch
90+
run: |
91+
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+
94+
Test:
95+
name: Unit Test
96+
runs-on: macos-11
97+
env:
98+
DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
99+
WORKSPACE_NAME: SDWebImageSwiftUI.xcworkspace
100+
OSXSCHEME: SDWebImageSwiftUITests macOS
101+
iOSSCHEME: SDWebImageSwiftUITests
102+
TVSCHEME: SDWebImageSwiftUITests tvOS
103+
strategy:
104+
matrix:
105+
iosDestination: ["platform=iOS Simulator,name=iPhone 13 Pro"]
106+
macOSDestination: ["platform=macOS,arch=x86_64"]
107+
tvOSDestination: ["platform=tvOS Simulator,name=Apple TV 4K"]
108+
steps:
109+
- name: Checkout
110+
uses: actions/checkout@v2
111+
112+
- name: Install Carthage
113+
run: brew install carthage
114+
115+
- name: Install Cocoapods
116+
run: gem install cocoapods --no-document --quiet
117+
118+
- name: Install Xcpretty
119+
run: gem install xcpretty --no-document --quiet
120+
121+
- name: Pod Update
122+
run: pod repo update --silent
123+
124+
- name: Pod Install
125+
run: pod install
126+
127+
- name: Clean DerivedData
128+
run: |
129+
rm -rf ~/Library/Developer/Xcode/DerivedData/
130+
mkdir DerivedData
131+
132+
- name: Test - ${{ matrix.iosDestination }}
133+
run: |
134+
set -o pipefail
135+
xcodebuild test -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.iOSSCHEME }}" -destination "${{ matrix.iosDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
136+
mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/iOS
137+
138+
- name: Test - ${{ matrix.macOSDestination }}
139+
run: |
140+
set -o pipefail
141+
xcodebuild test -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.OSXSCHEME }}" -destination "${{ matrix.macOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
142+
mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/macOS
143+
144+
- name: Test - ${{ matrix.tvOSDestination }}
145+
run: |
146+
set -o pipefail
147+
xcodebuild test -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.TVSCHEME }}" -destination "${{ matrix.tvOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
148+
mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/tvOS
149+
150+
- name: Code Coverage
151+
run: |
152+
set -o pipefail
153+
export PATH="/usr/local/opt/curl/bin:$PATH"
154+
curl --version
155+
bash <(curl -s https://codecov.io/bash) -D './DerivedData/macOS' -J '^SDWebImageSwiftUI$' -c -X gcov -F macos
156+
bash <(curl -s https://codecov.io/bash) -D './DerivedData/iOS' -J '^SDWebImageSwiftUI$' -c -X gcov -F ios
157+
bash <(curl -s https://codecov.io/bash) -D './DerivedData/tvOS' -J '^SDWebImageSwiftUI$' -c -X gcov -F tvos
158+
159+
Build:
160+
name: Build Library
161+
runs-on: macos-11
162+
env:
163+
DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
164+
PROJECT_NAME: SDWebImageSwiftUI.xcodeproj
165+
SCHEME_NAME: SDWebImageSwiftUI
166+
steps:
167+
- name: Checkout
168+
uses: actions/checkout@v2
169+
170+
- name: Install Cocoapods
171+
run: gem install cocoapods --no-document --quiet
172+
173+
- name: Install Xcpretty
174+
run: gem install xcpretty --no-document --quiet
175+
176+
- name: Pod Update
177+
run: pod repo update --silent
178+
179+
- name: Pod Install
180+
run: pod install
181+
182+
- name: Build the SwiftPM
183+
run: |
184+
set -o pipefail
185+
swift build
186+
rm -rf ~/.build

Example/Podfile

Lines changed: 0 additions & 28 deletions
This file was deleted.

Example/SDWebImageSwiftUI.xcodeproj/project.pbxproj

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -122,17 +122,17 @@
122122
3E9F8B5F06960FFFBD1A5F99 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = "<group>"; };
123123
473D7886C23B6FC5AFE35842 /* Pods_SDWebImageSwiftUIDemo_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SDWebImageSwiftUIDemo_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
124124
54859B427E0A79E823713963 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = "<group>"; };
125-
5864FFEDE62A0630EDF26A56 /* Pods-SDWebImageSwiftUIDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo.release.xcconfig"; path = "Target Support Files/Pods-SDWebImageSwiftUIDemo/Pods-SDWebImageSwiftUIDemo.release.xcconfig"; sourceTree = "<group>"; };
126-
746AF60263F54FD7E16AA7D5 /* Pods-SDWebImageSwiftUIDemo-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-tvOS.debug.xcconfig"; path = "Target Support Files/Pods-SDWebImageSwiftUIDemo-tvOS/Pods-SDWebImageSwiftUIDemo-tvOS.debug.xcconfig"; sourceTree = "<group>"; };
125+
5864FFEDE62A0630EDF26A56 /* Pods-SDWebImageSwiftUIDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo.release.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo/Pods-SDWebImageSwiftUIDemo.release.xcconfig"; sourceTree = "<group>"; };
126+
746AF60263F54FD7E16AA7D5 /* Pods-SDWebImageSwiftUIDemo-tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-tvOS.debug.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo-tvOS/Pods-SDWebImageSwiftUIDemo-tvOS.debug.xcconfig"; sourceTree = "<group>"; };
127127
79C3538209F8065DCCFBE205 /* Pods_SDWebImageSwiftUIDemo_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SDWebImageSwiftUIDemo_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
128-
7B0D9182CAD02B73E6F208F3 /* Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.release.xcconfig"; path = "Target Support Files/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.release.xcconfig"; sourceTree = "<group>"; };
129-
89B11BBDBAA86F760DF1EE2D /* Pods-SDWebImageSwiftUIDemo-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-macOS.debug.xcconfig"; path = "Target Support Files/Pods-SDWebImageSwiftUIDemo-macOS/Pods-SDWebImageSwiftUIDemo-macOS.debug.xcconfig"; sourceTree = "<group>"; };
130-
95C9E0D9CE4113E5A82480B9 /* Pods-SDWebImageSwiftUIDemo-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-tvOS.release.xcconfig"; path = "Target Support Files/Pods-SDWebImageSwiftUIDemo-tvOS/Pods-SDWebImageSwiftUIDemo-tvOS.release.xcconfig"; sourceTree = "<group>"; };
131-
A78BA7FB5AFF53CBDD4C4CBD /* Pods-SDWebImageSwiftUIDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo.debug.xcconfig"; path = "Target Support Files/Pods-SDWebImageSwiftUIDemo/Pods-SDWebImageSwiftUIDemo.debug.xcconfig"; sourceTree = "<group>"; };
128+
7B0D9182CAD02B73E6F208F3 /* Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.release.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.release.xcconfig"; sourceTree = "<group>"; };
129+
89B11BBDBAA86F760DF1EE2D /* Pods-SDWebImageSwiftUIDemo-macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-macOS.debug.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo-macOS/Pods-SDWebImageSwiftUIDemo-macOS.debug.xcconfig"; sourceTree = "<group>"; };
130+
95C9E0D9CE4113E5A82480B9 /* Pods-SDWebImageSwiftUIDemo-tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-tvOS.release.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo-tvOS/Pods-SDWebImageSwiftUIDemo-tvOS.release.xcconfig"; sourceTree = "<group>"; };
131+
A78BA7FB5AFF53CBDD4C4CBD /* Pods-SDWebImageSwiftUIDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo.debug.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo/Pods-SDWebImageSwiftUIDemo.debug.xcconfig"; sourceTree = "<group>"; };
132132
E25DB0256669F3B7EE7C566D /* Pods_SDWebImageSwiftUIDemo_watchOS_WatchKit_Extension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SDWebImageSwiftUIDemo_watchOS_WatchKit_Extension.framework; sourceTree = BUILT_PRODUCTS_DIR; };
133133
F0FCDD95C695D2F914DC9B3B /* Pods_SDWebImageSwiftUIDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SDWebImageSwiftUIDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; };
134-
F3AACDC116F5598BC39A8573 /* Pods-SDWebImageSwiftUIDemo-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-macOS.release.xcconfig"; path = "Target Support Files/Pods-SDWebImageSwiftUIDemo-macOS/Pods-SDWebImageSwiftUIDemo-macOS.release.xcconfig"; sourceTree = "<group>"; };
135-
FEED4964309E241D2FD8A544 /* Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.debug.xcconfig"; path = "Target Support Files/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.debug.xcconfig"; sourceTree = "<group>"; };
134+
F3AACDC116F5598BC39A8573 /* Pods-SDWebImageSwiftUIDemo-macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-macOS.release.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo-macOS/Pods-SDWebImageSwiftUIDemo-macOS.release.xcconfig"; sourceTree = "<group>"; };
135+
FEED4964309E241D2FD8A544 /* Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.debug.xcconfig"; path = "../../Pods/Target Support Files/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension/Pods-SDWebImageSwiftUIDemo-watchOS WatchKit Extension.debug.xcconfig"; sourceTree = "<group>"; };
136136
/* End PBXFileReference section */
137137

138138
/* Begin PBXFrameworksBuildPhase section */
@@ -961,7 +961,7 @@
961961
GCC_C_LANGUAGE_STANDARD = gnu11;
962962
INFOPLIST_FILE = "SDWebImageSwiftUIDemo-macOS/Info.plist";
963963
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
964-
MACOSX_DEPLOYMENT_TARGET = 10.15;
964+
MACOSX_DEPLOYMENT_TARGET = 11.0;
965965
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
966966
MTL_FAST_MATH = YES;
967967
PRODUCT_BUNDLE_IDENTIFIER = "com.dreampiggy.SDWebImageSwiftUIDemo-macOS";
@@ -993,7 +993,7 @@
993993
GCC_C_LANGUAGE_STANDARD = gnu11;
994994
INFOPLIST_FILE = "SDWebImageSwiftUIDemo-macOS/Info.plist";
995995
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
996-
MACOSX_DEPLOYMENT_TARGET = 10.15;
996+
MACOSX_DEPLOYMENT_TARGET = 11.0;
997997
MTL_FAST_MATH = YES;
998998
PRODUCT_BUNDLE_IDENTIFIER = "com.dreampiggy.SDWebImageSwiftUIDemo-macOS";
999999
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -1030,7 +1030,7 @@
10301030
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
10311031
SWIFT_VERSION = 5.0;
10321032
TARGETED_DEVICE_FAMILY = 3;
1033-
TVOS_DEPLOYMENT_TARGET = 13.0;
1033+
TVOS_DEPLOYMENT_TARGET = 14.0;
10341034
};
10351035
name = Debug;
10361036
};
@@ -1059,7 +1059,7 @@
10591059
SDKROOT = appletvos;
10601060
SWIFT_VERSION = 5.0;
10611061
TARGETED_DEVICE_FAMILY = 3;
1062-
TVOS_DEPLOYMENT_TARGET = 13.0;
1062+
TVOS_DEPLOYMENT_TARGET = 14.0;
10631063
};
10641064
name = Release;
10651065
};

Podfile

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
use_frameworks!
2+
3+
def all_pods
4+
pod 'SDWebImageSwiftUI', :path => './'
5+
pod 'SDWebImageWebPCoder'
6+
pod 'SDWebImageSVGCoder'
7+
pod 'SDWebImagePDFCoder'
8+
end
9+
10+
example_project_path = 'Example/SDWebImageSwiftUI'
11+
test_project_path = 'SDWebImageSwiftUI'
12+
workspace 'SDWebImageSwiftUI.xcworkspace'
13+
14+
target 'SDWebImageSwiftUIDemo' do
15+
project example_project_path
16+
platform :ios, '14.0'
17+
all_pods
18+
end
19+
20+
target 'SDWebImageSwiftUIDemo-macOS' do
21+
project example_project_path
22+
platform :osx, '11.0'
23+
all_pods
24+
end
25+
26+
target 'SDWebImageSwiftUIDemo-tvOS' do
27+
project example_project_path
28+
platform :tvos, '14.0'
29+
all_pods
30+
end
31+
32+
target 'SDWebImageSwiftUIDemo-watchOS WatchKit Extension' do
33+
project example_project_path
34+
platform :watchos, '7.0'
35+
all_pods
36+
end
37+
38+
# Test Project
39+
target 'SDWebImageSwiftUITests' do
40+
project test_project_path
41+
platform :ios, '14.0'
42+
end
43+
44+
target 'SDWebImageSwiftUITests macOS' do
45+
project test_project_path
46+
platform :osx, '11.0'
47+
end
48+
49+
target 'SDWebImageSwiftUITests tvOS' do
50+
project test_project_path
51+
platform :tvos, '14.0'
52+
end

0 commit comments

Comments
 (0)