Skip to content

Commit 4b7cbfc

Browse files
committedSep 15, 2022
Fix the CI, re-enable GitHub Actions
1 parent a75add8 commit 4b7cbfc

File tree

6 files changed

+178
-30
lines changed

6 files changed

+178
-30
lines changed
 

‎.github/workflows/CI.yml

+165
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
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: Run SDWebImageSwiftUI podspec lint
31+
run: |
32+
set -o pipefail
33+
pod lib lint SDWebImageSwiftUI.podspec --allow-warnings --skip-tests
34+
35+
Demo:
36+
name: Run Demo
37+
runs-on: macos-11
38+
env:
39+
DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
40+
WORKSPACE_NAME: SDWebImageSwiftUI.xcworkspace
41+
OSXSCHEME: SDWebImageSwiftUIDemo-macOS
42+
iOSSCHEME: SDWebImageSwiftUIDemo
43+
TVSCHEME: SDWebImageSwiftUIDemo-tvOS
44+
WATCHSCHEME: SDWebImageSwiftUIDemo-watchOS WatchKit App
45+
strategy:
46+
matrix:
47+
iosDestination: ["name=iPhone 13 Pro"]
48+
tvOSDestination: ["name=Apple TV 4K"]
49+
watchOSDestination: ["platform=watchOS Simulator,name=Apple Watch Series 7 - 45mm"]
50+
macOSDestination: ["platform=macOS"]
51+
macCatalystDestination: ["platform=macOS,arch=x86_64,variant=Mac Catalyst"]
52+
steps:
53+
- name: Checkout
54+
uses: actions/checkout@v2
55+
56+
- name: Install Cocoapods
57+
run: gem install cocoapods --no-document --quiet
58+
59+
- name: Install Xcpretty
60+
run: gem install xcpretty --no-document --quiet
61+
62+
- name: Pod Update
63+
working-directory: ./Example
64+
run: pod repo update --silent
65+
66+
- name: Pod Install
67+
working-directory: ./Example
68+
run: pod install
69+
70+
- name: Run demo for OSX
71+
working-directory: ./Example
72+
run: |
73+
set -o pipefail
74+
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.OSXSCHEME }}" -destination "${{ matrix.macOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
75+
76+
- name: Run demo for iOS
77+
working-directory: ./Example
78+
run: |
79+
set -o pipefail
80+
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.iOSSCHEME }}" -destination "${{ matrix.iosDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
81+
82+
- name: Run demo for TV
83+
working-directory: ./Example
84+
run: |
85+
set -o pipefail
86+
xcodebuild build -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.TVSCHEME }}" -destination "${{ matrix.tvOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
87+
88+
- name: Run demo for Watch
89+
working-directory: ./Example
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+
PROJECT_NAME: SDWebImageSwiftUI.xcodeproj
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: Carthage Update
116+
run: ./carthage.sh update --platform "iOS, tvOS, macOS"
117+
118+
- name: Clean DerivedData
119+
run: |
120+
rm -rf ~/Library/Developer/Xcode/DerivedData/
121+
mkdir DerivedData
122+
123+
- name: Test - ${{ matrix.iosDestination }}
124+
run: |
125+
set -o pipefail
126+
xcodebuild test -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.iOSSCHEME }}" -destination "${{ matrix.iosDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
127+
mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/iOS
128+
129+
- name: Test - ${{ matrix.macOSDestination }}
130+
run: |
131+
set -o pipefail
132+
xcodebuild test -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.OSXSCHEME }}" -destination "${{ matrix.macOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
133+
mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/macOS
134+
135+
- name: Test - ${{ matrix.tvOSDestination }}
136+
run: |
137+
set -o pipefail
138+
xcodebuild test -project "${{ env.PROJECT_NAME }}" -scheme "${{ env.TVSCHEME }}" -destination "${{ matrix.tvOSDestination }}" -configuration Debug CODE_SIGNING_ALLOWED=NO | xcpretty -c
139+
mv ~/Library/Developer/Xcode/DerivedData/ ./DerivedData/tvOS
140+
141+
- name: Code Coverage
142+
run: |
143+
set -o pipefail
144+
export PATH="/usr/local/opt/curl/bin:$PATH"
145+
curl --version
146+
bash <(curl -s https://codecov.io/bash) -D './DerivedData/macOS' -J '^SDWebImageSwiftUI$' -c -X gcov -F macos
147+
bash <(curl -s https://codecov.io/bash) -D './DerivedData/iOS' -J '^SDWebImageSwiftUI$' -c -X gcov -F ios
148+
bash <(curl -s https://codecov.io/bash) -D './DerivedData/tvOS' -J '^SDWebImageSwiftUI$' -c -X gcov -F tvos
149+
150+
Build:
151+
name: Build Library
152+
runs-on: macos-11
153+
env:
154+
DEVELOPER_DIR: /Applications/Xcode_13.2.1.app
155+
PROJECT_NAME: SDWebImageSwiftUI.xcodeproj
156+
SCHEME_NAME: SDWebImageSwiftUI
157+
steps:
158+
- name: Checkout
159+
uses: actions/checkout@v2
160+
161+
- name: Build the SwiftPM
162+
run: |
163+
set -o pipefail
164+
swift build
165+
rm -rf ~/.build

‎.gitignore

+1
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

+3-3
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

+4-4
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

-16
This file was deleted.

‎carthage.sh

+5-7
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,16 @@
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.
1111

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
16-
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
12+
echo 'EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig
13+
echo 'EXCLUDED_ARCHS[sdk=appletvsimulator*] = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig
14+
echo 'EXCLUDED_ARCHS[sdk=watchsimulator*] = arm64 arm64e armv7 armv7s armv6 armv8' >> $xcconfig
1715

1816
export XCODE_XCCONFIG_FILE="$xcconfig"
1917
carthage "$@"

0 commit comments

Comments
 (0)
Please sign in to comment.