Skip to content

Commit e77305f

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

File tree

6 files changed

+211
-29
lines changed

6 files changed

+211
-29
lines changed

.github/workflows/CI.yml

Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
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+
working-directory: ./Example
70+
run: pod repo update --silent
71+
72+
- name: Pod Install
73+
working-directory: ./Example
74+
run: pod install
75+
76+
- name: Run demo for OSX
77+
working-directory: ./Example
78+
run: |
79+
set -o pipefail
80+
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.OSXSCHEME }}" -destination "${{ matrix.macOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
81+
82+
- name: Run demo for iOS
83+
working-directory: ./Example
84+
run: |
85+
set -o pipefail
86+
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.iOSSCHEME }}" -destination "${{ matrix.iosDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
87+
88+
- name: Run demo for TV
89+
working-directory: ./Example
90+
run: |
91+
set -o pipefail
92+
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.TVSCHEME }}" -destination "${{ matrix.tvOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
93+
94+
- name: Run demo for Watch
95+
working-directory: ./Example
96+
run: |
97+
set -o pipefail
98+
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.WATCHSCHEME }}" -destination "${{ matrix.watchOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
99+
100+
Test:
101+
name: Unit Test
102+
runs-on: macos-11
103+
env:
104+
DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
105+
PROJECT_NAME: SDWebImageSwiftUI.xcodeproj
106+
OSXSCHEME: SDWebImageSwiftUITests macOS
107+
iOSSCHEME: SDWebImageSwiftUITests
108+
TVSCHEME: SDWebImageSwiftUITests tvOS
109+
strategy:
110+
matrix:
111+
iosDestination: ["platform=iOS Simulator,name=iPhone 13 Pro"]
112+
macOSDestination: ["platform=macOS,arch=x86_64"]
113+
tvOSDestination: ["platform=tvOS Simulator,name=Apple TV 4K"]
114+
steps:
115+
- name: Checkout
116+
uses: actions/checkout@v2
117+
118+
- name: Install Carthage
119+
run: brew install carthage
120+
121+
- name: Carthage Update
122+
run: ./carthage.sh update --platform "iOS, tvOS, macOS"
123+
124+
- name: Install Cocoapods
125+
run: gem install cocoapods --no-document --quiet
126+
127+
- name: Install Xcpretty
128+
run: gem install xcpretty --no-document --quiet
129+
130+
- name: Pod Update
131+
run: pod repo update --silent
132+
133+
- name: Pod Install
134+
run: pod install
135+
136+
- name: Clean DerivedData
137+
run: |
138+
rm -rf ~/Library/Developer/Xcode/DerivedData/
139+
mkdir DerivedData
140+
141+
- name: Test - ${{ matrix.iosDestination }}
142+
run: |
143+
set -o pipefail
144+
xcodebuild test -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.iOSSCHEME }}" -destination "${{ matrix.iosDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
145+
mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/iOS
146+
147+
- name: Test - ${{ matrix.macOSDestination }}
148+
run: |
149+
set -o pipefail
150+
xcodebuild test -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.OSXSCHEME }}" -destination "${{ matrix.macOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
151+
mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/macOS
152+
153+
- name: Test - ${{ matrix.tvOSDestination }}
154+
run: |
155+
set -o pipefail
156+
xcodebuild test -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.TVSCHEME }}" -destination "${{ matrix.tvOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
157+
mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/tvOS
158+
159+
- name: Code Coverage
160+
run: |
161+
set -o pipefail
162+
export PATH="/usr/local/opt/curl/bin:$PATH"
163+
curl --version
164+
bash <(curl -s https://codecov.io/bash) -D './DerivedData/macOS' -J '^SDWebImageSwiftUI$' -c -X gcov -F macos
165+
bash <(curl -s https://codecov.io/bash) -D './DerivedData/iOS' -J '^SDWebImageSwiftUI$' -c -X gcov -F ios
166+
bash <(curl -s https://codecov.io/bash) -D './DerivedData/tvOS' -J '^SDWebImageSwiftUI$' -c -X gcov -F tvos
167+
168+
Build:
169+
name: Build Library
170+
runs-on: macos-11
171+
env:
172+
DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
173+
PROJECT_NAME: SDWebImageSwiftUI.xcodeproj
174+
SCHEME_NAME: SDWebImageSwiftUI
175+
steps:
176+
- name: Checkout
177+
uses: actions/checkout@v2
178+
179+
- name: Install Cocoapods
180+
run: gem install cocoapods --no-document --quiet
181+
182+
- name: Install Xcpretty
183+
run: gem install xcpretty --no-document --quiet
184+
185+
- name: Pod Update
186+
run: pod repo update --silent
187+
188+
- name: Pod Install
189+
run: pod install
190+
191+
- name: Build the SwiftPM
192+
run: |
193+
set -o pipefail
194+
swift build
195+
rm -rf ~/.build

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,4 @@ Podfile.lock
4141
# SwiftPM
4242
.build
4343
.swiftpm
44+
Package.resolved

Example/Podfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@ def all_pods
88
end
99

1010
target 'SDWebImageSwiftUIDemo' do
11-
platform :ios, '13.0'
11+
platform :ios, '14.0'
1212
all_pods
1313
end
1414

1515
target 'SDWebImageSwiftUIDemo-macOS' do
16-
platform :osx, '10.15'
16+
platform :osx, '11.0'
1717
all_pods
1818
end
1919

2020
target 'SDWebImageSwiftUIDemo-tvOS' do
21-
platform :tvos, '13.0'
21+
platform :tvos, '14.0'
2222
all_pods
2323
end
2424

Example/SDWebImageSwiftUI.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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
};

SDWebImageSwiftUI.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

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

carthage.sh

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,19 @@
22
# Usage example: ./carthage.sh build --platform iOS
33

44
set -euo pipefail
5-
5+
66
xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX)
77
trap 'rm -f "$xcconfig"' INT TERM HUP EXIT
8-
8+
99
# For Xcode 12 make sure EXCLUDED_ARCHS is set to arm architectures otherwise
1010
# the build will fail on lipo due to duplicate architectures.
11+
12+
CURRENT_XCODE_VERSION="$(xcodebuild -version | grep "Xcode" | cut -d' ' -f2 | cut -d'.' -f1)00"
13+
CURRENT_XCODE_BUILD=$(xcodebuild -version | grep "Build version" | cut -d' ' -f3)
1114

12-
CURRENT_XCODE_VERSION=$(xcodebuild -version | grep "Build version" | cut -d' ' -f3)
13-
echo "EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200__BUILD_$CURRENT_XCODE_VERSION = arm64 arm64e armv7 armv7s armv6 armv8" >> $xcconfig
14-
15-
echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200 = $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_1200__BUILD_$(XCODE_PRODUCT_BUILD_VERSION))' >> $xcconfig
15+
echo "EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_${CURRENT_XCODE_VERSION}__BUILD_${CURRENT_XCODE_BUILD} = arm64 arm64e armv7 armv7s armv6 armv8" >> $xcconfig
16+
17+
echo 'EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_'${CURRENT_XCODE_VERSION}' = $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64__XCODE_$(XCODE_VERSION_MAJOR)__BUILD_$(XCODE_PRODUCT_BUILD_VERSION))' >> $xcconfig
1618
echo 'EXCLUDED_ARCHS = $(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT)__XCODE_$(XCODE_VERSION_MAJOR))' >> $xcconfig
1719

1820
export XCODE_XCCONFIG_FILE="$xcconfig"

0 commit comments

Comments
 (0)